DRF & Django 5

[DRF] Serializers 개념

🧙 이번 포스팅은 DRF의 Serializers 개념에 대해 알아 보도록 하겠습니다. 참고로 모든 내용은 https://www.django-rest-framework.org/api-guide/serializers/ 페이지에 다 있습니다. ✅ DRF의 처리 과정은 간략하게 다음과 같이 3단계로 이루어 집니다. 1. data를 DB로 부터 가져온다. 2. Serialize 합니다. 3. 클라이언트에게 response합니다. 그래서 우리는 2번 "Serialize 합니다."를 분석 파악을 해보는 시간을 가지겠습니다. 아래와 같이models와 Serializer이 있다고 가정하겠습니다. ✍ Comment / models.py class Comment(models.Model): post = models.Forei..

DRF & Django 2022.08.08

[DRF] ORM 중복 제거

Django에는 QuerySet의 filter에 order by와 같은 메소드인 distinct가 있습니다. distinct는 SQL에 있듯이 의미 하는 바는 "중복제거" 입니다. Distinct를 단독으로 사용 방법 Vehicle.objects.distinct() ↑코드의 SQL 쿼리 print(Vehicle.objects.distinct().query) SELECT DISTINCT "myapp_vehicle"."id", "myapp_vehicle"."name", "myapp_vehicle"."number" FROM "myapp_vehicle" 쿼리의 결과 ↓ 모든 필드의 DISTINCT의 조건으로 했을 경우, 중복되는 레코드는 없다는 의미입니다. Distinct와 values_list를 결합 하나일 ..

DRF & Django 2022.03.10

[DRF] Redis vs RabbitMQ and setting

RabbitMQ — 메시지 브로커 메시지를 다른 대기열로 보낼 수 있는 라우팅 시스템을 갖춤 메시지 우선순위 지원 크고 복잡한 메시지에 적합 속도보다 지속성이 중요한 서비스에 적합 Redis — 인메모리 Cache 서버 Key-Value를 이용해, Celery가 처리할 작업을 보낸 후 Cache에서 해당 Key 제거 Database에 접근하기 전, 메모리에서 Cache를 가져다 쓴다는 점에서 속도가 빠름 지속성이 중요하지 않고, 약간의 손실을 견딜 수 있는 짧은 보존 메시지에 적합 Redis docker-compose.file version: '3.7' services: redis: image: redis:alpine command: redis-server --requirepass changeme --p..

DRF & Django 2022.02.03

[DRF] Redis, Celery 기본 세팅

Init install pip # pip install redis # pip 세팅 폴더에 작성 ## backend/celery.py import os from celery import Celery # Celery 모듈을 위한 Django 기본세팅 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.dev') # Celery 세팅(borker 설정) app = Celery('backend',backend='redis://', broker='redis://{rdis ip address}') # 여기서 문자열을 사용하는것은 작업자가가 자식 프로세스 직렬화 구성을 하지 않는것을 의미합니다. # -namespace='CELERY' 의 의미는 셀러리..

DRF & Django 2022.02.01