프로젝트
📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용
Chansman
2025. 6. 9. 18:36
📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용
✅ 목표
- Django REST Framework (DRF) 설치
- SimpleJWT를 통한 인증 기능 추가
- 로컬 개발 환경과 Docker 컨테이너에 모두 적용
🧩 진행 순서
1️⃣ DRF, SimpleJWT 패키지 설치
로컬 가상환경(venv, poetry 등)에서:
pip install djangorestframework djangorestframework-simplejwt
설치 패키지 설명
패키지설명
djangorestframework | Django 전용 REST API 프레임워크 |
djangorestframework-simplejwt | JWT 인증을 위한 SimpleJWT 라이브러리 |
2️⃣ Django 설정 파일에 DRF 등록
config/settings/base.py 파일에 INSTALLED_APPS 추가:
INSTALLED_APPS = [
# 기존 앱들
'rest_framework',
]
3️⃣ DRF 기본 인증 설정 (SimpleJWT 적용)
config/settings/base.py 또는 dev.py 파일에 추가:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
}
설정 포인트
- JWTAuthentication 추가로 토큰 인증 기능 활성화
- API 요청 시 액세스 토큰(Access Token) 필요
4️⃣ requirements.txt 업데이트
로컬 패키지 목록을 requirements.txt로 저장:
pip freeze > requirements.txt
✅ djangorestframework, djangorestframework-simplejwt가 리스트에 추가된다.
5️⃣ Docker 환경 적용
Dockerfile에서 requirements.txt를 이용해 패키지 설치:
COPY requirements.txt .
RUN pip install -r requirements.txt
Docker 컨테이너를 새로 빌드:
docker compose build --no-cache
docker compose up
✅ --no-cache 옵션으로 캐시 없이 완전 새로 빌드
🚨 문제 및 해결 과정
- 문제: Docker 빌드 중 이미지 export 오류 발생
failed to prepare extraction snapshot: parent snapshot does not exist
- 원인: Docker 빌드 캐시 손상
- 해결 방법:
docker builder prune
docker compose build --no-cache
docker compose up
📝 최종 정리
단계작업 내용
DRF 설치 | pip install djangorestframework djangorestframework-simplejwt |
Django 설정 | INSTALLED_APPS, REST_FRAMEWORK 인증 설정 추가 |
requirements.txt 업데이트 | pip freeze > requirements.txt |
Docker 빌드 및 서버 기동 | docker compose build --no-cache && docker compose up |
문제 해결 | Docker builder 캐시 초기화 docker builder prune |