📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용

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

'프로젝트' 카테고리의 다른 글

🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리  (0) 2025.06.09
🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙  (0) 2025.06.09
📮4. Django DB 연결 대기 커스텀 커맨드 제작 및 GitHub Actions 적용기  (0) 2025.06.09
📮 3. Django ORM을 활용하여 Model 생성하기  (1) 2025.06.09
📮 3. ERD를 구성 Mermid 활용  (0) 2025.06.09
'프로젝트' 카테고리의 다른 글
  • 🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리
  • 🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙
  • 📮4. Django DB 연결 대기 커스텀 커맨드 제작 및 GitHub Actions 적용기
  • 📮 3. Django ORM을 활용하여 Model 생성하기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (807)
      • Python (32)
      • 프로젝트 (116)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (42)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    lawsuitculture
    remittance
    hotcoffeecase
    trumpmuskclash
    smartphonedurability
    gpterror
    livebroadcast
    RM
    chinanightlife
    life reflection
    newpoliticalparty
    chatgpterror
    college reunions
    bts
    americanlaw
    self-growth
    basalcellcarcinoma
    travel ban
    classaction
    urbantrends
    btsjungkook
    americaparty
    btsdischarge
    youngprofessionals
    btsreunion
    뷔
    homebartrend
    global politics
    titaniumcase
    btscomeback
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용
상단으로

티스토리툴바