해당 포스팅은 유투버 Bucky의 『Pro Django Tutorial』 내용을 바탕으로 작성 했습니다.
동영상 속 깃헙 바로가기
빨간색 하이라이트 부분은 기술 테스트 구현을 마치고 포스팅 작성이 완료된 부분 입니다.
🐝 pyproject.toml
[tool.poetry.dependencies]
boto3 = "^1.26.137"
channels = {extras = ["daphne"], version = "^4.0.0"}
django-cors-headers = "^3.14.0"
django-filter = "^23.2"
django-model-utils = "^4.3.1"
django-storages = "^1.13.2"
djangorestframework = "^3.14.0"
djangorestframework-simplejwt = "^5.2.2"
pydantic = "^1.10.7"
pynacl = "^1.5.0"
pyyaml = "^6.0"
whitenoise = "^6.4.0"
Bucky의 .toml 파일을 살펴보면
강의에서는 다루지 않았지만 그의 산출물에는 매우 많은 패키지들이 포함된 것을 알 수 있다.
프로젝트 고도화에 도움이 될 것 같아
각각의 라이브러리들이 하는 역할을 짧게 살펴보도록 하자.
🐝 필수 라이브러리 및 웹 프레임워크
🍯 channels & daphne
channels = {extras = ["daphne"], version = "^4.0.0"}
- Django에 WebSocket, HTTP2, 비동기 처리(Async)를 추가하는 프레임워크.
- daphne는 ASGI 서버로, Django Channels를 실행하는 데 사용됨.
강의자는 도커 전까지 초기화 상태의 깡통장고를 사용 하다가
도커 강의에서 갑자기 초기화 상태로는 아무것도 못 보여줄 것 같다며
야무진 프로젝트를 만들어 온다.
그리고 운영서버를 실행할 때 daphne 라는 명령어를 사용해 실행시켰다.
🍯 djangorestframework
- Django에서 RESTful API를 쉽게 만들 수 있도록 도와주는 프레임워크.
- Serializer, ViewSet, APIView, 인증 등 많은 기능 제공.
🍯 djangorestframework-simplejwt
- JWT(JSON Web Token)를 사용한 인증 기능을 제공하는 패키지.
- djangorestframework와 함께 사용되며 로그인/인증 시스템을 구현할 때 유용함.
🐝 장고 유틸리티
- Django 앱에서 CORS(Cross-Origin Resource Sharing) 설정을 할 수 있게 해주는 미들웨어.
- 다른 도메인에서 API를 호출할 수 있도록 허용하는 데 필요.
🍯 django-filter
- Django REST Framework에서 쿼리 파라미터 기반 필터링을 쉽게 구현할 수 있도록 도와주는 패키지.
- 예시: /api/users?is_active=true
🍯 django-model-utils
- Django 모델에 유용한 기능들을 제공 (예: TimeStampedModel, StatusModel 등).
- 중복된 코드 없이 공통적인 필드를 사용할 수 있게 해준다.
🍯 django-storages
- Amazon S3, Google Cloud Storage 등 외부 스토리지를 Django에서 쉽게 사용할 수 있게 해주는 라이브러리.
- 보통 boto3와 함께 사용함.
🍯 whitenoise
- JS, CSS, 이미지 등의 정적 파일을 서빙할 수 있도록 도와주는 패키지.
- collectstatic 이후 prod 환경에서 NGINX 없이도 정적 파일을 제공할 수 있게 해줌.
🐝 AWS 연동 및 보안 관련
🍯 boto3
- AWS SDK for Python
- S3, SES, DynamoDB, SNS 등 AWS 서비스와 상호작용할 때 사용.
- django-storages와 함께 S3 연동 시 자주 사용됨.
🍯 pynacl
- 암호화 관련 라이브러리로, Python에서 비대칭 키 암호화 및 서명 기능을 제공.
- 보안 기능이 필요한 애플리케이션이나, JWT 토큰 처리, WebSocket 인증 등에 사용될 수 있음.
🐝 데이터 처리
🍯 pydantic
- 데이터 유효성 검사 및 직렬화를 위한 Python 라이브러리.
- 주로 FastAPI에서 자주 쓰이지만, Django에서도 구조화된 데이터 검증에 사용됨.
🍯 pyyaml
- YAML 파일을 파싱하거나 생성하는 데 사용되는 라이브러리.
- 설정 파일을 YAML 형식으로 저장할 때 사용됨.
앞으로 볼드처리된 패키지들에 대해 하나씩 알아가며
테스트 코드를 짜보고
그 유용성을 느껴보며
실제 포레포레 고도화 과정에 포함시킬지 결정하겠다!
끝!