docs(311): add UUID validation policy
This commit is contained in:
parent
bb72ac44ea
commit
2db88e9e55
@ -1,7 +1,7 @@
|
|||||||
# Backend Coding Principles
|
# Backend Coding Principles
|
||||||
|
|
||||||
**작성일**: 2025-09-17
|
**작성일**: 2025-09-17
|
||||||
**수정일**: 2026-01-21 (파일 크기 제한 300줄 → 500줄 완화)
|
**수정일**: 2026-03-27 (DB 접근 규칙에 UUID 검증 원칙 추가)
|
||||||
**상위 원칙**: [0_VALUE Coding Principles](../../../../0_VALUE/20_Governance/coding-principles.md)
|
**상위 원칙**: [0_VALUE Coding Principles](../../../../0_VALUE/20_Governance/coding-principles.md)
|
||||||
|
|
||||||
## 1. 계층 분리 원칙
|
## 1. 계층 분리 원칙
|
||||||
@ -153,6 +153,14 @@ utils
|
|||||||
- 예: `system_endpoint.py`에서 router 인스턴스, `schedule_endpoint.py`에서 scheduler 인스턴스
|
- 예: `system_endpoint.py`에서 router 인스턴스, `schedule_endpoint.py`에서 scheduler 인스턴스
|
||||||
- **간단한 경우**: `state/database.py`에서 직접 연결
|
- **간단한 경우**: `state/database.py`에서 직접 연결
|
||||||
|
|
||||||
|
### UUID 검증 원칙
|
||||||
|
|
||||||
|
상위 원칙 참조: [coding-principles.md](../../../../0_VALUE/20_Governance/coding-principles.md) 식별자 계약
|
||||||
|
|
||||||
|
- `user_id` 검증은 Pydantic의 `UUID` 타입으로 처리한다. UUID4 전용 검증(`UUID4`)으로 제한하지 않는다.
|
||||||
|
- DB `uuid` 컬럼은 버전 무관 표준 UUID를 저장하므로, 앱 계층의 입력 검증과 스키마도 같은 기준을 사용한다.
|
||||||
|
- 생성 정책과 소비자 검증 정책을 혼동하지 않는다. 특정 서비스가 UUID4를 발급하더라도, 소비자는 유효한 표준 UUID 전체를 수용한다.
|
||||||
|
|
||||||
### Supabase 쿼리 컬럼명 충돌 처리
|
### Supabase 쿼리 컬럼명 충돌 처리
|
||||||
- **예약어/컬럼명 충돌**: `order` 같은 예약어가 컬럼명과 겹칠 경우 쿼리 체이닝에서 직접 `.order()` 사용 금지
|
- **예약어/컬럼명 충돌**: `order` 같은 예약어가 컬럼명과 겹칠 경우 쿼리 체이닝에서 직접 `.order()` 사용 금지
|
||||||
- **Python 로직 처리**: 컬럼명 충돌 시 Supabase 쿼리 체이닝 대신 Python 로직으로 정렬 처리 (모든 데이터 조회 후 Python에서 정렬)
|
- **Python 로직 처리**: 컬럼명 충돌 시 Supabase 쿼리 체이닝 대신 Python 로직으로 정렬 처리 (모든 데이터 조회 후 Python에서 정렬)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user