프로젝트
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 파일, 시크릿 매니저 등 환경변수 안전 관리
- 배포 전 충분한 테스트 및 모니터링 체계 구축