diff --git a/book/300_architecture/311_FastAPI_구조_원칙.md b/book/300_architecture/311_FastAPI_구조_원칙.md index 002fec8..1af8653 100644 --- a/book/300_architecture/311_FastAPI_구조_원칙.md +++ b/book/300_architecture/311_FastAPI_구조_원칙.md @@ -168,7 +168,19 @@ utils - 중간 과정은 DEBUG 레벨 - 프로덕션에서는 INFO 기본, DEBUG는 필요 시에만 활성화 -## 12. 모범 사례 참고 +## 12. 환경변수 관리 원칙 + +**단일 소스 원칙**: +- **`.env`**: 모든 환경변수 값의 단일 소스 (실제 값만 저장) +- **`docker-compose.yml`**: `env_file: - .env`로 자동 로드, `environment:` 섹션은 선택사항 +- **`config.py`**: Pydantic Settings로 `.env` 자동 로드, 타입 검증 및 기본값만 담당 + +**금지 사항**: +- ❌ `.env`, `docker-compose.yml`, `config.py`에 동일한 변수를 중복 정의 +- ❌ 코드에서 `os.getenv()` 직접 호출 (Pydantic Settings 사용) +- ❌ `docker-compose.yml`의 `environment:` 섹션에 하드코딩된 값 + +## 13. 모범 사례 참고 본 문서는 FastAPI 커뮤니티의 다음 모범 사례를 반영하였습니다: