객체 지향 설계와 스프링
·
Backend/Spring
자바 진영의 추운 겨울과 스프링의 탄생EJB: Enterprise Java Beans장점: 이론적으로 좋음, ORM도 돼단점: 수천만원, 느리고, 복잡하고, 어려움스프링EJB를 비판하며 오픈소스로 만듦하이버네이트EJB 비판하며 오픈소스로 만듦EJB 엔티티빈 기술을 대체JPA: 자바 표준 인터페이스지금은 이러한 구조를 가짐보통 하이버네이트가 80% 차지스프링이란?스프링은 여러가지 기술의 모음이다. 하나씩 간단하게 알아보자.스프링 데이터: 데이터베이스의 종류가 많지만, 기본적인 CRUD는 다 비슷함, 이걸 편리하게 사용하고자 스프링 데이터를 사용함가장 많이 사용: 스프링 데이터 JPA스프링 시큐리티: 보안과 관련된 것스프링 Rest Docs: API 문서와 테스트를 편하게 엮어서 문서화를 편하게 해주는 것스..
싱글톤 컨테이너
·
Backend/Spring
웹 애플리케이션과 싱글톤 ✨ 싱글톤? 객체가 하나만 있어야 하는 패턴싱글톤 패턴은 객체 지향 프로그래밍에서 특정 클래스가 단 하나만의 인스턴스를 생성하여 사용하기 위한 패턴이다. 생성자를 여러 번 호출하더라도 인스턴스가 하나만 존재하도록 보장하여 애플리케이션에서 동일한 객체 인스턴스에 접근할 수 있도록 한다.싱글톤 패턴을 사용하는 이유 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 경우 인스턴스를 여러 개 만들게 되면 불필요한 자원을 사용하게 되고, 프로그램이 예상치 못한 결과를 낳을 수 있다. 따라서 객체를 필요할 때마다 생성하는 것이 아닌 단 한 번만 생성하여 전역에서 이를 공유하고 사용할 수 있게 하기 위해 싱글톤 패턴을 사용한다.장점 유일한 인스턴스 : 싱글톤 패턴이 적용된 클래스의 인스..
[백엔드][장고][Django] Chapter #4
·
Backend/Django
#4.1 Migrations우리가 파이썬 코드로 줘도, 장고는 데이터베이스를 위해 SQL코드로 번역해서 인식함장고는 커스텀 데이터에 대한 관리 패널을 자동으로 생성해줌admin.py에서 house model import해줌from .models import House그리고 또 다른 class를 만든다from django.contrib import admin from .models import House @admin.register(House) # 이 밑의 class가 House 모델을 통제함 class HouseAdmin(admin.ModelAdmin): # 1) HouseAdmin이라는 class를 만들고, 2) ModelAdmin으로부터 모든걸 상속받음 pass #ModelAdmin에서 아무것도 수정..
[백엔드][장고][Django] Chapter #15
·
Backend/Django
#15.0 IntroductionDRF에서 authentication strategy를 구축하는 법을 배울 것임토큰 베이스의 인증을 생성해보고, 그 다음 JWT(JSON web token)인증을 만들 것임postman 다운받기 #15.1 Custom Authentication우리만의 인증 로직 만들기config의 settings 에서 drf 인증의 디폴드 방식을 명시할 것임REST_FRAMEWORK = { "DEFAULT_AUTHENTICATION_CLASSES":[ "rest_framework.authentication.SessionAuthentication" ] }config에서 authentication.py라는 새 파일을 생성from rest_framework.authentication impor..
[백엔드][장고][Django] Chapter #12
·
Backend/Django
#12.0 User Profileconfig의 urls.py에서 path("api/v1/users/", include("users.urls")), 다음과 같이 경로 추가users의 urls.py 생성 views.pyfrom rest_framework.response import Response from rest_framework.views import APIView from rest_framework import status from rest_framework.permissions import IsAuthenticated from . import serializers class Me(APIView): permission_classes = [IsAuthenticated] def get(self, reque..
[백엔드][Django][장고 채널스]Section3.영어 상황극 채팅 웹 서비스, 사전작업
·
Backend/Django
웹서비스로 구현해보기 위해서는?유저는 원하는 주제의 상황극 채팅방을 개설할 수 있어야 함→ 장고 기본 기능 활용(form,view)유저는 서버와 1:1 채팅을 할 수 있어야하며, 즉각적인 메세지 전송이 필요함 → 웹소켓 by 장고 채널스각 유저의 채팅방 messages 내역을 어딘가에 저장해야함 → 장고 채널스의 consumer 인스턴스 내에 저장하면 별도 인프라X 새로운 프로젝트만들어서~migrate하고, superuser만들고, chat 애플리케이션 생성settings가서 Installedapps에 ‘chat’추가chat에서 urls.py생성import 해주고 urlpatterns만들고,mysite의 urls에서 path 추가해주기 장고 시스템 메세지 한국어로 동작시키기 위해, settings에서 한..
[백엔드][Django][장고 채널스]Section2.영어 상황극 채팅 CLI 애플리케이션 만들기
·
Backend/Django
이렇게 변수를 사용할 것임 영어 상황극 채팅 CLI(Command Line Interface) 로 개발↔ GUI(Graphic User Interface)투박하고 사용성은 떨어지지만, 최소한의 코드로 유저와 상호작용하는 애플리케이션을 만들 수 있음 cli.py 생성def main(): while line := input("[user]").strip(): print(line) if __name__ == "__main__": main()이 코드는 user가 쓴 문자열을 그대로 리턴함 여기에def gpt_query(user_query:str) -> str: "유저 메세지에 대한 응답을 반환합니다." return "GPT 응답" def main(): while line := input("[user]").stri..
[백엔드][Django][장고 채널스] Section1. openAI API 살펴보기 (1)
·
Backend/Django
test_openai_api.pyimport sys import openai openai.api_key = "" # your API key if not openai.api_key: print("OPENAI API KEY를 지정해주세요.", file=sys.stderr) sys.exit(1) # 텍스트 생성 혹은 문서 요약 response = openai.Completion.create( engine="text-davinci-003", prompt=""" Fix grammar errors: - I is a boy - You is a girl""".strip(), ) print(response) print(response.choices[0].text.strip()) # 챗봇 응답 생성 response = o..
코코자
'Backend' 카테고리의 글 목록