Django 프로젝트를 개발할 때 로컬 환경과 서버(운영 환경)에서 DEBUG
설정을 다르게 적용해야 한다. 실수로 운영 환경에서 DEBUG=True
를 유지하면 보안 취약점이 발생할 수 있으므로 이를 방지해야 한다.
로컬에서는 DEBUG=True
, 운영 환경에서는 DEBUG=False
가 자동으로 적용되도록 하기 위해
아래와 같이 settings.py
에서 환경 변수를 기반으로 설정할 수 있습니다.
참고로 로컬에서 DEBUG=False일 때, static 내의 내용이 제대로 import 되지 않는다.
True
와 비교한다.False
이므로, 환경 변수가 설정되지 않았다면 자동으로 DEBUG=False가 된다.아래 내용은 일반적으로 DEBUG가 False일 때, 필요한 내용이다. 각자 상황에 맞게 변경하면 된다.
아래 내용은 일반적으로 DEBUG가 True일 때, 필요한 내용이다. 각자 상황에 맞게 변경하면 된다.
import os
DEBUG = os.getenv("YOUR_DEBUG", "False") == "True"
#print(f"YOUR_DEBUG: '{os.getenv('YOUR_DEBUG')}'") # 환경 변수 값 확인용 (테스트 시 주석 해제)
if not DEBUG: # 배포 환경에서는 HTTPS 강제 리디렉트 적용
SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
else: # 로컬에서는 HTTPS 리디렉트 비활성화
SECURE_SSL_REDIRECT = False
SECURE_HSTS_SECONDS = 0 # HSTS 비활성화
@nullvuild