분류 전체보기 147

오답노트

3. Django의 QuerySet 메서드 중 데이터베이스에서 특정 조건에 맞는 모든 레코드를 반환하는 메서드는 무엇인가요?A: filter() - all()은 특정조건이 아닌 모든 레코드를 반환함 4. Django 템플릿 시스템에서 변수의 값을 출력할 때 사용하는 문법은 무엇인가요?A: {{ 변수 }} - Template 태그 : {% 문법 %}- Template 변수 : {{ 변수 }}- Template 필터 : {{ 변수|옵션 }} 6. Django에서 특정URL에 대한 요청을 처리할 뷰(View)와 연결할 때 주로 사용하는 함수는 무엇인가요? A: path() - include()는 namespace를 사용했을때, 특정 APP의 namespace를 통해 해당 앱의 URL로 넘어가는 함수

잡다한 것 2024.09.02

외부 API 연동하기

소셜 로그인결제(PG)외부 데이터 APIOpenAI…등의 외부 API 연동하는 법을 다룸. OpenAI API를 사용해서 AI 서비스를 제공(1) 회원 가입하기(2) API Key 발급 및 설정하기외부 서비스를 가져다가 사용하는 경우 대부분 API Key를 이용해서 서비스를 이용하게 됨.따라서 절대 노출이 되면 안됨 ! (Github Repo 등에 올리지 않도록 각별히 유의)API Key는 유저의 고유 Key이며 이 Key를 이용해서 자신들의 서비스를 이용하는 유저가 누구인지 식별하고 필요시 과금처리  이때, OPENAI API 키는 Copy 한 뒤 프로젝트 최상단 폴더에 config.py 파일을 만들어서 아래처럼 미리 복사해두자 (다시 이 key를 볼 수 없기 때문에 혹여 까먹으면 삭제하고 다시 발급받..

Django 2024.09.01

Redis

00.Redis 01. Redis가 필요한 경우들02. Redis 기본 구조03. 캐시 읽기 전략 (Read Cache Strategy)04. Django With Redis  00.Redis (Remote Dictionary Server): 데이터를 빠르게 저장하고 가져오는데 탁월한 성능을 발휘하는 도구인-메모리(In-memory) 데이터베이스로 메모리를 저장소로 사용한 마디로 아주 빠름 (Disk에 비해 약 1,000배 이상)value에 String, Set, Hash 등 다양한 종류의 타입을 지원 복잡한 쿼리가 필요 없음그런데 잘 잊어버림 (인메모리라 휘발성, 근데? 보완책 있음)한 번에 하나의 일만 처리할 수 있음 (어차피 빠르고, 순서를 보장해서 꼬일일이 없음. 장점!!)  01. Redis가 ..

Django 2024.08.30

Django ORM 최적화

“섣부른 최적화는 만악의 근원이다”컴퓨터 과학의 거장 ‘도널드 크누스’그래도 하고 싶다면 아래 두 단계를 따를 것하지마라.아직 하지마라. 완전히 명백하게 이해하고 해법을 찾기전까지는 하지 마라.확실하게 이해하고 사용하지 않은 단순 성능상의 이익을 위한 최적화는 결국 더욱 큰 문제로 되돌아옴 SELECT "articles_comment"."id", "articles_comment"."article_id", "articles_comment"."content", "articles_comment"."created_at", "articles_comment"."updated_at" FROM "articles_comment"SELECT "articles_article"."id", "articles_article"."..

Django 2024.08.30

JSON Web Token, JWT

Session & Cookie⭐ 쿠키 (Cookie)웹 브라우저와 요청과 응답을 주고받을때 사용하는 데이터 조각쿠키는 도메인에 제한적이며 유효기간이 정해져있음Auth 외에도 다양한 방식으로 활용 (광고...?)⭐ 세션 (Session)stateless한 HTTP 특징을 보완하기 위한 방법세션 DB를 이용해서 유저의 정보를 기억하며 Session ID라고 하는 랜덤한 Key를 쿠키에 담아서 Auth에 활용쿠키를 사용해서 Session ID를 주고 받는 것  JSON Web Token, JWT: 쿠키는 웹 브라우저에만 존재. 어플 등 다양한 장치와 소통 필요! Token은 간단히 말해 랜덤하게 생긴 문자열이며, 일정한 규칙을 가지고 있고 간단한 서명을 더한 문자열로 토큰 자체에 유저에 대한 간단한 정보가 들..

Django 2024.08.30

Serializer 활용하기

1. Article에 Comment 추가하기 : 모델 사이에 참조 관계가 있다면 해당 필드를 포함하거나 중첩할 수 있음 결국 우리가 조작해줘야할 것: Serializer현재 Article → Comments 접근이 필요 == 역참조역참조시 사용할 수 있는 comment_set 이 있으나 우리는 comments 로 명명from rest_framework import serializersfrom .models import Article, Commentclass CommentSerializer(serializers.ModelSerializer): class Meta: model = Comment fields = "__all__" read_only_fields = ("..

Django 2024.08.29

DRF CBV

Class Based View 특징클래스형 뷰에서는 특정 Http Method에 대한 처리를 함수로 분리할 수 있음→ GET요청에 대한 처리는 get()에서, POST 요청에 대한 처리는 post()에서 정의 가능 Class Based View 종류APIView - DRF CBV의 베이스 클래스GenericAPIView일반적인 API 작성을 위한 기능이 포함된 클래스보통 CRUD 기능이 대부분인 상황을 위해 여러가지 기능이 미리 내장됨Mixin재사용 가능한 여러가지 기능을 담고있느 클래스말그대로 여러 클래스를 섞어서 사용하기 위한 클래스ListModelMixin - 리스트 반환 API를 만들기 위해 상속 받는 클래스CreateModelMixin - 새로운 객체를 생성하는 API를 만들기위해 상속 받는 클..

Django 2024.08.29