두숟갈 스터디 3회
Django 앱 설계 원칙과 settings·requirements 분리 방법을 정리하고 프로젝트를 시작했다.
지난 시간에 이어 Two Scoops of Django 4~5장을 함께 살펴보며 Django 앱 설계와 설정 관리의 기본을 정리했다. 4장은 앱을 작고 명확한 단위로 유지해야 한다는 원칙에 초점을 맞췄고, 5장은 운영 환경까지 고려한 settings와 requirements 분리 방법을 다뤘다.
Django 앱 디자인에서는 각 앱이 자기 임무에만 집중해야 하며, 프로젝트 안의 앱들은 기능 단위의 라이브러리처럼 다뤄야 한다는 점을 강조했다. 앱 이름은 가능한 한 짧고, 중심 모델의 복수형을 고려하며, URL과 PEP8 import 규칙까지 함께 생각해야 한다.
앱 내부 구조는 대부분의 프로젝트에서 비슷하게 가져가되, 공통적으로는 다음과 같은 모듈을 두는 구성을 설명했다.
admin.pyforms.pymanagement/migrations/models.pytemplatetags/tests/urls.pyviews.py
설정 관리에서는 버전 관리되지 않는 로컬 세팅을 피하고, SECRET_KEY나 각종 API 키 같은 민감 정보는 저장소에서 분리해야 한다는 점을 짚었다. 이를 위해 settings/ 디렉토리 아래에 base.py, local.py, staging.py, test.py, production.py처럼 여러 환경용 설정 파일을 나누는 방식을 소개했다.
설정을 코드와 분리하는 방법으로는 환경 변수 사용을 권장했고, 환경 변수를 쓸 수 없을 때는 JSON, Config, YAML, XML 같은 파일 기반 방식도 대안으로 언급했다. 또한 requirements 파일도 여러 개로 나누어 관리하고, 경로는 하드코딩하지 말고 BASE_DIR를 기준으로 처리해야 한다는 점을 정리했다.
심화 파트에서는 실제 회사 사례를 바탕으로 좋은 점과 아쉬운 점을 비교했고, 서버별로 Secret Key를 다르게 둘 때의 문제와 Secret Key 유출 시의 위험도 함께 논의했다. 발표와 질문이 오가며 보안과 운영 측면에서 더 현실적인 고민까지 이어졌다.
스터디가 끝난 뒤에는 조별로 모여 책 관리 서비스 프로젝트를 시작했다. 각 조는 같은 주제를 바탕으로 피드백을 주고받기 쉽게 구성했고, 이번에는 레포지토리 생성, 기본 세팅, 프로젝트명 결정까지 마쳤다.
- 1조:
ramen-prop - 2조:
abook - 3조:
booki3rd
다음 단계에서는 각 조가 같은 주제 위에 기능을 더해가며 프로젝트를 발전시킬 예정이다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.