프로젝트

5️⃣ 운영과 개발 환경 구분 및 배포 준비

Chansman 2025. 6. 6. 01:43

5️⃣ 운영과 개발 환경 구분 및 배포 준비


📌 DEBUG=True vs DEBUG=False 의미와 차이

  • DEBUG=True
    • 개발환경용 설정
    • 에러 페이지에 상세 정보 노출
    • Django 내장 서버가 정적파일 직접 서빙
    • 보안 취약점 존재 → 운영에 적합하지 않음
  • DEBUG=False
    • 운영환경용 설정
    • 에러 페이지 일반화, 민감정보 숨김
    • Django는 정적파일 직접 서빙 안 함
    • 정적파일은 Nginx, Apache 같은 웹서버가 서빙

📌 운영환경에서 정적파일 서빙

  • Django 정적파일은 collectstatic으로 한 곳에 모은 뒤
  • Nginx 등을 사용해 /static/ URL과 연결해 빠르게 서빙
  • 예) Nginx 설정
location /static/ {
    alias /app/staticfiles/;
}

📌 Docker 환경에서 웹서버 구성

  • Django 웹서버와 Nginx 웹서버를 별도 컨테이너로 구성하는 것이 일반적
  • Nginx가 정적파일 서빙과 리버스 프록시 역할 담당
  • Docker Compose에서 두 컨테이너 네트워크로 연결

📌 운영 배포 시 주의사항

  • DEBUG=False로 반드시 설정
  • ALLOWED_HOSTS에 도메인 또는 IP 설정
  • 보안 강화(SSL, HTTPS 등) 필수
  • 데이터베이스와 환경변수 등 민감정보 별도 관리

📌 실무 팁

  • 개발과 운영 환경을 명확히 분리해 관리하기
  • .env 파일, 시크릿 매니저 등 환경변수 안전 관리
  • 배포 전 충분한 테스트 및 모니터링 체계 구축