[Pro Django] Tutorial: 강의에서 다루지 않은 패키지 뜯어보기

Saemi An·2025년 5월 15일

해당 포스팅은 유투버 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-headers

  • 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 형식으로 저장할 때 사용됨.

앞으로 볼드처리된 패키지들에 대해 하나씩 알아가며
테스트 코드를 짜보고
그 유용성을 느껴보며

실제 포레포레 고도화 과정에 포함시킬지 결정하겠다!

끝!

profile
하나씩 차근차근 천천히

0개의 댓글