2024/08 43

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

Django Seed(Response와 Serializer)

0. 기초작업api_pjt 라는 이름의 프로젝트를 생성articles 앱을 생성하고 기본적인 url 구조를 만듦/api/v1/articles/로 들어오면 articles 앱의 urls로 연결articles 앱의 models.py를 작성Artcile 모델 클래스를 작성하고 아래 필드를 포함titlecontentcreated_atupdated_at조회를 하려면 데이터가 필요Django Seed :→ 매번 create하는 것도 너무 힘들기에 자동으로 많이 생성해주는 라이브러리 installpip install django-seed→ freeze !settings.pyINSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "djang..

Django 2024.08.29

파이썬 함수(is, ==의 차이/ 바다코끼리/ suppress[try catch] / big num)

1. str# add_string_by_plus 주소가 계속 바뀜add_string_by_plus = ""for i in range(50): add_string_by_plus += str(i)print(add_string_by_plus)---------------------------------#좀더 최적화된 방식import ioadd_string_by_plus = io.StringIO()for i in range(50): add_string_by_plus.write(str(i))string_by_plus = add_string_by_plus.getvalue()print(string_by_plus)  2. try catch와 contextlib.suppress filename = "타겟.jpg..

파이썬 2024.08.29