반응형
앱 디자인
- 장고 앱은 한 번에 한 가지 일을 충실히 하도록 디자인 한다.
- 앱 이름은 지루하더라도 명료한 이름을 선호하며 짧은 한 단어를 선호 한다.(url도 고려가 필요)
ex) 아이스크림 앱
flavors : 아이스크림 관리(종류)
blog : 아이스크림 blog
events : 행사내용을 웹 사이트에 보여주는 앱
shop : 온라인 주문
ticekts : 티켓 판패
예제의 앱들을 보면 합칠 수도 있는 앱들이 있다. 이후 앱 확장 시 복잡한 로직이 생길 수 있다. 그렇기에 기능들을 작게 나누도록 앱을 디자인 한다.
settings/requirements 파일
- 버전 컨트롤 시스템으로 모든 설정 파일 관리
- 반복되는 설정들은 제거
- 암호나 비밀 키 등은 안전하게 보관
여러개의 settings 파일 이용
- 한개의 settings 파일을 이용하기 보다는 여러개의 셋업파일을 이용한다.
base.py / local.py / staging.py / test.py / production.py
- base.py 세팅파일은 공용으로 사용 되는 세팅 파일이다.
- debug_toolbar 같은 경우는 로컬(개발)환경에서만 사용을 한다. 그럼 local.py에만 세팅을 해놓고 같이 개발하는 이들과 공유를 하는 것이다. 상용에 올라가는 production.py에는 당연히 명시 되어 있지 않다.
- 개개인이 요구에 맞는 개발 환경도 dev_jun.py와 같이 파일 생성 후 형상관리로 공유를 한다. 팀원간 서로의 개발 세팅도 참고가 필요할 때가 있어 공유하면 유용하다.
- 비밀키는 환경변수를 이용하여 저장하며 이를 환경 변수 패턴이라 부른다.
- 로컬에서는 환경변수에 저장하며(e.g ~/.profile), 상용은 자체 환경변수 관리법(e.g aws는 자체 저장)을 사용한다.
- 환경 변수를 이용 할 수 없을 때(e.g 웹서버)는 비밀 파일 패턴이라는 방법을 이용한다.
- 비밀 파일 패턴 작성법: 비밀 파일 작성 -> 코드 내 비밀 파일 로더 작성 -> .gitignore에 추가
여러개의 requirements 파일 이용
- 각각의 세팅 모듈에 대한 독립적인 requirements 파일이 필요로 하다.
- 유용 패턴 중 하나, requirements 디렉토리를 만들고 세팅 파일과 동일하게 .txt 파일을 만들어 준다.
base.txt / local.txt / staging.txt / test.txt / production.txt
- base.txt는 공통, 나머지는 환경에 따른 의존성을 입력해주자.
- 개발 환경에 맞는 설치는 다음과 같다.
pip install -r requirements/local.txt
pip install -r requirements/production.txt
- 경로를 하드코딩 하지 않고 setting 모듈 최상위에(e.g base.py) BASE_DIR라는 root 변수를 사용하자.
- 환경파일 관리는 쿠키커터를 사용하면 환경에 맞게 파일을 생성해준다. 쿠키커터를 사용하여 환경 설정법을 익혀보자.
<Two Scoops of Django 중>
반응형
'Programming > python' 카테고리의 다른 글
[django] 장고를 aws 상용에 배포 하자 (elastic beanstalk) (2) | 2020.03.04 |
---|---|
장고 서버와 리액트 프런트를 연동하자(django-cors-header) (1) | 2020.03.03 |
[django] 투 스쿱 오브 장고 (1장 코딩 스타일, 2-3장 장고 환경) (0) | 2020.01.08 |
[python] django-heroku, ValueError: Missing staticfiles manifest entry for 에러 (0) | 2019.05.26 |
[DesignPattern] 스트래티지 패턴(strategy) (0) | 2019.04.17 |