반응형

앱 디자인

  • 장고 앱은 한 번에 한 가지 일을 충실히 하도록 디자인 한다.
  • 앱 이름은 지루하더라도 명료한 이름을 선호하며 짧은 한 단어를 선호 한다.(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 중>

반응형

+ Recent posts