docs: enforce root-cause-first and status-code integrity rules

This commit is contained in:
Claude 2026-02-27 03:47:42 +09:00
parent 1c098b7632
commit 44c0060002
2 changed files with 9 additions and 1 deletions

View File

@ -133,6 +133,8 @@ utils
### 예외 처리/웹훅 원칙
- **HTTPException 재포장 금지**: `except Exception`에서 `HTTPException`까지 500으로 감싸지 않는다. `except HTTPException: raise`를 기본 패턴으로 둔다.
- **Slack 서명 검증 경로 원문 보존**: 프록시 경유 웹훅은 원문 body를 유지해야 하며, 서명 검증 경로에서 body 재직렬화를 금지한다.
- **원인 직접 수정 우선**: 증상을 감추는 광범위 예외 폴백/임시 우회 코드를 금지한다. 재현 가능한 근본 원인(입력/경로/설정/데이터)을 먼저 수정한다.
- **상태코드 의미 보존**: 인증 실패(401/403), 권한 문제(403), 입력 오류(400)는 원래 의미대로 반환하고 500으로 왜곡하지 않는다.
## 6. DB 접근 규칙
@ -232,6 +234,7 @@ utils
- [ ] 원칙 문서 확인 완료 (`311_FastAPI_구조_원칙.md`, `312_문서_작성_원칙.md`)
- [ ] 웹훅 프록시 경로에서 원문 body 전달(`content=raw_body`) 여부 확인
- [ ] 인증 실패 상태코드(403/401)가 500으로 재매핑되지 않는지 확인
- [ ] 증상 완화용 폴백 대신 근본 원인 수정이 반영되었는지 확인
배포 전/후 확인:
- [ ] 코드 변경 후 `git status`로 커밋되지 않은 변경사항 확인

View File

@ -17,6 +17,12 @@
**참고**: `rb8001/app/core/logger.py`
## 장애 분석 원칙 (필수)
- **상태코드 왜곡 금지**: 인증/입력/권한 오류를 500으로 재매핑하지 않는다.
- **근본 원인 우선**: 임시 예외 폴백으로 증상을 숨기지 말고, 재현 가능한 원인(원문 body, 헤더, 설정, 데이터)을 직접 수정한다.
- **로그 증거 필수**: 원인 판단은 같은 시각의 ingress/nginx, gateway, 서비스 로그를 함께 대조해 확정한다.
---
## 로그 포맷
@ -82,4 +88,3 @@ logger.info(f"User {user_id} authenticated", extra={
---
**업데이트**: 로깅 규칙 변경 시 즉시 반영