5. Settings와 requirements 파일
장고 세팅 모듈에서는 수많은 항목의 설정을 제공하고 있다. 이것이 장고의 장점이자 어려움이 될 수 있다.
책에서 추천하는 장고 최적의 설정 방법은 아래와 같다.
- 버전 컨트롤 시스템으로 모든 설정 파일을 관리해야 한다.
- 반복되는 설정들을 없애야 한다.
- 암호나 비밀 키 등은 안전하게 보관해야 한다.
5-1.버전 관리되지 않는 로컬 세팅은 피하도록 한다.
- django의 시크릿키와 같은 것들은 공개 되서는 안되기 때문에 감춰줘야한다.
- 디버깅 툴과 같은 것은 운영 서버에서는 활용 되지 않고 개발 환경에서만 활용 되기 때문에 제외해야 한다.
- 즉, settings모듈을 분리해냄으로써 해결 가능한 부분이다.
5-2. 여러 개의 settings 파일 이용하기
- 한개의 settigns파일만 사용하는 것이 아닌 용도에 맞게 settings 파일을 분리해낸다.
settings/
__init__.py
base.py # 프로젝트의 모든 인스턴스에 적용되는 공통 세팅 파일
local.py # 로컬환경에서 작업할때 사용(디버그, 로그 레벨, etc...)
staging.py # 실운영 환경에 넘어가기전 반 운영 환경용 세팅 파일
test.py # 테스트 러너, 로그 세팅을 위한 파일
production.py # 실 운영 서버를 위한 세팅 파일
- 각 settings 파일 실행 명령어는 아래와 같다.(config는 프로젝트 명이다)
python manage.py runserver --settings=config.settings.local
- 각 세팅파일의 들어가는 코드의 차이는 개인적인 것이지만 공통적으로 DEBUG는 분리해줘야한다. 개발=True, 배포=False는 기본적으로 지켜줘야하는 분명한 사실이다.
- 그외의 실질적인 분리방식은 아래 링크를 참고 해도 될듯싶다!(깨알 깃허브 홍보ㅎ)
GitHub - DreamIn-Developer/server: Dreamin server repo
Dreamin server repo. Contribute to DreamIn-Developer/server development by creating an account on GitHub.
github.com
5-3. 코드에서 설정 분리하기
- secret key, aws key, api key와 같은 다른 사람들이 알아선 안되는 키값같은 경우, 분리해서 감춰야만 한다.
- 이를 해결하는 방식은 json, .env파일과 같은 형식으로 관리할 수있다.
- 하지만, 환경변수도 한가지 방식이고 확장에 용이하므로 알아보면 좋다.
- 이부분은 너무나 방식이 다양하여 책을 구입하여 참고하거나 구글에서 검색해보길 권장한다.
5-4. 여러개의 requirements파일 이용하기
- 환경이 여러개로 분리되면 각각에 해당하는 requirements를 생성해야한다.
- respository_root 아래에 아래와 같은 구조로 관리할 수 있다.
requirements/
base.txt
local.txt
staging.txt
production.txt
- 각 settings 파일과 동일한 이름으로 생성해준다.
- 설치는 아래와 같이 한다. -> 그에 맞는 가상환경 생성은 기본이다!!
pip install -r requirements/local.txt
'기술 > Django' 카테고리의 다른 글
two scoops of django - 쿼리와 데이터베이스 레이어(트랜잭션은 언제 사용하는가?) (0) | 2022.09.03 |
---|---|
two scoops of django - django에서 모델이란? (0) | 2022.09.01 |
two scoops of django - django 코딩 스타일 맞춰보기(2) (0) | 2022.08.30 |
two scoops of django - django 코딩 스타일 맞춰보기 (0) | 2022.08.29 |
drf -서버란? 그리고 drf란? (0) | 2022.03.24 |