장고
-
[Django] DRF Router(라우터) 동작 원리파이썬/Django 2022. 2. 13. 22:42
들어가며 DRF의 대표 클래스(ViewSet, Serializer, Router)중 하나인 Router의 종류와 동작원리를 알아본다. Router는 간단하고 빠르게 자동으로 url 라우팅을 할 수 있도록 해준다. from rest_framework import routers from apps.account. import views router = routers.SimpleRouter() router.register(r'users', views.UserViewSet) urlpatterns = router.urls 위와 같은 코드를 작성하면 ^users/$ ^users/{int: lookup}/$ 의 url패턴이 자동으로 생성된다. DRF에는 SimpleRouter, DefaultRouter 두 가지를 제공..
-
[Django] DRF Serializer(시리얼라이저) 동작 원리파이썬/Django 2022. 1. 24. 22:44
들어가며 DRF에서 주요 클래스(ViewSet, Router, Serializer) 중 하나인 Serializer의 동작 원리를 살펴본다. Serializer의 기능은 세 가지가 있는데 다음과 같다. 모델 객체 → 파이썬 네이티브 타입인 dict 타입 객체로 직렬화 dict 타입의 데이터를 validation dict 타입 → 모델 객체로 역 직렬화 validation 기능은 주로 역 직렬화 전에 dict 타입의 데이터를 검증해주는 기능으로 사용된다. 이 Seirlaizer의 세 기능을 각각 어떻게 동작하는지 알아본다. 1. Model → dict class UserSerializer(serializers.Serializer): username = serializers.CharField() passwor..
-
Docker + Django에 Gitlab-CI(Pytest) 붙이기파이썬/Django 2021. 10. 24. 13:05
Gitlab CI를 구성하기 위해서는 크게 GitLab runners 설정하기 장고 패키지 설치하기 프로젝트 최상위 디렉토리에 .gitlab-ci.yml 작성하기 로 이루어져 있습니다. 우선 GirLab runners에 대해 알아보겠습니다. GitLab Runners란? 빌드, 테스트, 배포 같은 일련의 작업들을 실행하는 애플리케이션 파이프라인에서 GitLab CI/CD와 함께 수행되는 애플리케이션 각 Runner는 사용 가능한 상태(작업이 없는)가 되면 GitLab 인스턴스에 계속해서 요청을 보내 작업들을 할당 받음 이 Runner는 세 가지로 구분되어 있습니다. 간단히 각 Runners의 정의를 살펴보면 Specific runners 하나의 프로젝트에 사용되는 러너 Shared runners GitL..
-
Gunicorn 동작 과정 알아보기파이썬/Django 2021. 10. 10. 14:15
파이썬 웹 애플리케이션과 웹 서버 사이에 위치하는 Gunicorn 이라는 WSGI가 어떻게 동작하는지 알아본다. WSGI? Web Server Gateway Interface의 약자로 파이썬의 WAS이다. 어떻게 Gunicorn이 내 장고 애플리케이션을 동작시키는지? WSGI서버와 이 WSGI로 동작하기 위한 애플리케이션 사이에 지켜지는 hook들이 있는데 이 hook을 가지고 wsgi서버가 애플리케이션을 실행시킴 import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_defaults.settings") application = get_wsgi_appli..
-
[Django] Elastic Beanstalk에 AWS Elasticache Redis 사용하기파이썬/Django 2021. 4. 5. 13:25
Django Elastic Beanstalk 배포 환경에 AWS 레디스를 사용하는 방법을 소개해드리도록 하겠습니다! 1. Redis란?? Redis는 키-값 구조의 저장소로써 리스트, 해시, 셋 등 여러 자료구조를 지원하는 NoSQL입니다. 주로 RDBMS의 캐시 솔루션에 주로 사용됩니다. 자세한 특징은 여기에서 볼 수 있습니다. 2. AWS Elasticache Redis 클러스터 만들기 Elasticache 콘솔에 들어갑니다. Elasticache 대시보드의 Redis에 들어간 후 생성 버튼을 누릅니다. 엔진은 Redis를 사용하고 위치는 Amazon 클라우드를 선택합니다 이름과 설명을 써주시고 노드 유형는 저는 가장 싼 노드인 t2의 micro를 선택했습니다. 복제본은 1-5로 사용자가 알맞게 선택..