작성
·
368
0
안녕하세요!
실제 서비스를 제공할때는 메모리가 부족한 상황을 예방하기 위해 settings.DEBUG=False로 해두어야 한다는 팁을 알려주셔서 감사합니다.
그런데 연습 중에 setting.DEBUG를 꺼두니, 서버가 실행되지 않고, 다음과 같은 에러 메세지가 발생합니다.
1. DDT는 개발시에만 사용하고, 실제 서비스를 제공할때는 ddt를 끄고 제공해야하는 것인가요?
2. 추가로 수동 초기화 명령어는 model.py에 아래와 같은 형태로 추가하는 것이 맞는지도 확인부탁드립니다.
from django.db import reset_queries
reset_queries()
정보출처(https://stackoverflow.com/questions/33265144/is-there-any-way-to-clear-django-db-connection-queries)
답변 1
1
안녕하세요.
에러메세지에서도 안내되듯이 settings.DEBUG = False 시에는 settings.ALLOWED_HOSTS 리스트 설정을 반드시 하셔야 합니다. 이는 유저가 접속할 주소에 대한 화이트 리스트입니다.
관련문서 : https://docs.djangoproject.com/en/4.0/ref/settings/#allowed-hosts
유저가 아이피로 접속토록 한다면 아이피를, 유저가 지정 도메인으로 접속토록 한다면 그 도메인을 지정하시면 됩니다. 위 공식문서를 꼭 참고해보시구요.
DDT는 개발 머신에서만 디버깅 목적으로 적용하시는 것이 맞습니다. 실서비스에서는 서비스 모니터링을 통해 해결하시는 것이 맞구요. 이때 Sentry나 Datadog과 같은 서비스들을 연계해보실 수 있습니다.
디버깅 DB쿼리 내역 수동 초기화도 굳이 모델에 넣으실 필요는 없습니다. DEBUG=False 시에는 쿼리내역이 쌓이지 않기 때문입니다.