프로젝트

📌 [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