Django 배포 (Deployment)
디버그 모드 (Debug Mode)
- 기본적으로 Django 프로젝트를 생성하면 settings.py에 디버그 모드가 켜져 있는 상태로 만들어짐
...
DEBUG = True
...
- 보안 이슈로 이어지기 때문에 꼭 디버그 모드를 꺼주어야 함
- 모드를 끄게 되면 실제로 ALLOWED_HOSTS에 있는 호스트(hosts) 외에는
일체 접속이 차단 되어 더이상 내 컴퓨터에서도 접속이 되지 않음
호스트 설정 (Allowed Hosts)
- ALLOWED_HOSTS에 적는 호스트는 Django 프로젝트로 들어오는 요청에 대해 응답을 할 수 있는 호스트 즉, 서버의 주소
- 처음 프로젝트를 생성하면 아래처럼 비어있는 리스트로 생성
...
ALLOWED_HOSTS = []
...
- 비어있는 호스트이면서 디버그 모드가 켜져 있는 경우에는
[ 'localhost', '127.0.0.1', '[::1]' ]과 같은 의미가 되어 로컬 호스트(localhost) 즉 내 컴퓨터에서 접속이 가능한 상태
- 배포할 서버와 내 컴퓨터에 대해 허용해주기 위해 ALLOWED_HOSTS 리스트에 호스트를 추가해주는 것이 필요
정적 파일 관리 (Static Files)
- 흩어져있는 정적 파일들을 하나의 경로로 모두 모아 주어야 하는데 이때 사용하는 명령어가 바로 collectstatic 명령어
- collectstatic 명령어는 흩어져 있는 정적 파일을 settings.py에 명시되어 있는 STATIC_ROOT 경로로 복사해서 모아줌
STATIC_URL과 STATIC_ROOT의 차이
- STATIC_URL은 실제 존재하는 경로가 아니라 웹 페이지에서 사용할 정적 파일에 대한 URL
- STATIC_ROOT는 실제 존재하는 경로로 Django 프로젝트에서 사용하는 모든 정적 파일이 이 경로에 존재하며 웹 서버가 정적 파일을 찾기 위해 참조하는 실제 경로
소스코드 관리
- 버전 관리 시스템을 사용해서 소스코드를 관리하고 원격 서버에 업로드 하는 방법을 권장
- Git, SVN, Mercurial 등의 시스템