일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 뭐든
- 30분
- leetcode
- 사이드
- 영어공부
- 읽기
- 영어원서읽기
- 3줄정리
- 화상영어
- 10분
- 파비최
- 만화도
- 운동
- Problem Solving
- 리얼 클래스
- realclass
- 잡생각
- 괜찮음
- 쓰릴오브파이트
- 월간
- FIT XR
- 미드시청
- Writing
- English
- 매일
- Daily Challenge
- 프로젝트
- 링피트
- 스탭퍼
- 개발자
- Today
- Total
파비의 매일매일 공부기록
Two Scoops of Django - #5장 본문
이번 절은 settings와 requirements 파일에 대한 내용이다.
세팅 모듈은 서버를 재시작해야 가능하며 서비스 운영 중에 변경이 불가하다.
최선의 장고 설정 방법
1. VCS로 설정 파일 관리
2. 반복되는 설정 없애기
3. 암호나 비밀 키 등은 안전하게 보관. VCS에서 제외 필요
버전 관리되지 않는 로컬 세팅은 피해야 함.
SECRET_KEY는 특히 장고의 보안 기능을 무력화할 수 있으므로 관리가 필요.
여러 개의 settings 파일을 이용해서 다양한 셋업 환경을 구성하라.
서버 실행 시 다양한 세팅 파일을 실행할 수 있다.
Pycharm에서도 서버 실행 시 해당 작업들을 해준 걸로 기억.
만약 여러 개의 개발 세팅 파일을 생성해야 하는 경우에는 dev_{{id}}. py 형태로 파일을 생성하는 걸 추천.
그런데 비밀 키들의 경우 실제. py 파일에 포함되어 있지만 어떠한 로직을 갖는 코드는 아니기에 따로 분리하는 걸 추천.
따로 분리하는 방법 중 운영체제의 환경 변수로 설정하는 방법이 존재.
그러나 이 방법에도 유의할 점이 있는데,
1. 저장되는 비밀 정보를 관리할 방법
2. 서버에서 배시(bash)가 환경 변수와 작용하는 방식에 대한 이해 또는 PaaS 이용 여부
개발환경에서는 위와 같이 하지만, 운영의 경우는 조금 다를 수 있다.
가장 간단하게는 수작업으로 각각 설정하는 것인데
만약 스크립트나 서버 프로비저닝 또는 배포를 위한 도구를 따로 사용 중이라면 각 배포 도구의 문서를 참조해야 한다.
키가 환경변수로 등록되어 있지 않은 경우
오류가 나게 되면 트랙킹이 쉽지 않으니, settings.base.py에 error log를 남기도록 코드를 추가하는 걸 추천.
하나 위의 사례처럼 환경 변수를 이용하지 못하는 상황은 어찌해야 할까?
비밀 파일 패턴이라는 방법을 활용하는 걸 추천하는데, 장고에서 실행되지 않는 형식의 파일을 버전 컨트롤 시스템에 추가하지 않고 사용하는 방법임.
1. JSON, Config, YMAL 또는 XML 중 한 가지 포맷을 선택하여 비밀 파일을 생성.
2. 비밀 파일을 관리하기 위한 비밀 파일 로더(JSON 기반 예제)를 간단하게 추가.
3. 비밀 파일의 이름을. gitignore,. hgignore에 추가.
다음은 여러 개의 requirements 파일 이용하기에 대한 내용이다.
실제로 나는 이런 형태의 프로젝트를 경험 중인데, 생각보다 간단하다.
그냥 pip install -r filename.txt 형태로 입력하면 자동으로 설치가 된다.
settings에서 파일 경로 처리할 때는
제발 장고 세팅 파일에 하드 코딩된 파일 경로를 넣지 않아야 함. 매우 나쁜 습관이라고 저자는 경고함.
Unipath라는 패키지를 활용하여 BASE_DIR 같은 경로 세팅을 하는 걸 추천한다.
혹은 람다식을 이용해서 자동으로 PATH를 설정해주는 변수를 만들어서 구성하는 방법도 있다.
만약 내가 실무를 경험해보지 않았다면 이번장은 크게 의미도 없고 중요치도 않다고 생각했을 것 같다.
개발의 첫 시작은 환경 구성이므로, 이번장의 내용은 나에게 꽤 중요한 내용이라고 생각한다.
'Study > Python' 카테고리의 다른 글
Two Scoops of Django - #7장 (0) | 2021.06.08 |
---|---|
Two Scoops of Django - #6장 (0) | 2021.06.07 |
Two Scoops of Django - #4장 (0) | 2021.06.05 |
Two Scoops of Django - #3장 (0) | 2021.06.04 |
Two Scoops of Django - #2장 (0) | 2021.06.03 |