Django 컨벤션
프로젝트 구조
project/
├── config/ # settings, urls, wsgi, asgi
│ ├── settings/ # base.py, local.py, production.py 분리
│ └── urls.py
├── apps/ # 기능별 앱 모음
│ └── {app}/
│ ├── models.py
│ ├── views.py
│ ├── serializers.py # DRF 사용 시
│ ├── urls.py
│ └── tests/
└── requirements/ # base.txt, local.txt, production.txt
네이밍 규칙
- 파일/모듈:
snake_case - 클래스(모델, 뷰, 시리얼라이저):
PascalCase - URL name:
{app}:{action}형식 (예:users:detail) - 모델 필드:
snake_case
에러 처리
- DRF 사용 시
ValidationError,PermissionDenied,NotFound활용 - 커스텀 에러는
apps/core/exceptions.py에 정의 EXCEPTION_HANDLER설정으로 전역 에러 포맷 통일
테스트
pytest-django+factory_boy조합 권장TestCase대신pytest스타일 선호- 모델/시리얼라이저 단위 테스트 + API 통합 테스트 분리
Source: ggombee/code-forge — distributed by TomeVault.