diff --git a/book/300_architecture/311_FastAPI_구조_원칙.md b/book/300_architecture/311_FastAPI_구조_원칙.md index ee9b55b..66efe25 100644 --- a/book/300_architecture/311_FastAPI_구조_원칙.md +++ b/book/300_architecture/311_FastAPI_구조_원칙.md @@ -253,7 +253,20 @@ utils - HTTP(port 80)와 HTTPS(port 443) 블록 모두에 동일한 타임아웃 설정 적용 - 프록시 타임아웃은 백엔드 작업 시간보다 충분히 길게 설정 -## 15. 모범 사례 참고 +## 15. 정적 파일 서빙 원칙 + +### 필수 원칙 +- **백엔드 금지**: FastAPI 백엔드는 정적 파일(HTML/CSS/JS)을 서빙하지 않음 +- **nginx 직접 서빙**: nginx가 정적 파일을 직접 서빙하는 업계 표준 방식 사용 +- **역할 분리**: 백엔드는 API 처리에 집중, 웹서버(nginx)는 정적 파일 서빙 담당 +- **FileResponse 제거**: 백엔드에서 FileResponse로 정적 파일 서빙하는 코드 작성 금지 + +### 배경 +- nginx가 정적 파일을 직접 서빙하면 FastAPI 프로세스를 거치지 않아 성능 최적화 +- 프로덕션 환경에서 표준적인 배포 방식 +- 백엔드와 웹서버의 명확한 역할 분리 + +## 16. 모범 사례 참고 본 문서는 FastAPI 커뮤니티의 다음 모범 사례를 반영하였습니다: