From c52a046f9de7c1cb5ca5b00e5d46116f333acdf1 Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Sat, 29 Nov 2025 17:52:22 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=ED=99=98=EA=B2=BD=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EC=9B=90=EC=B9=99=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book/300_architecture/311_FastAPI_구조_원칙.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 커뮤니티의 다음 모범 사례를 반영하였습니다: