무결성 및 불변 조건 검증 규칙 통합
ADR-110 무결성 및 불변 조건 검증 규칙 통합
1. Metadata
- ADR ID: ADR-110
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
- 상태 전이 불변 조건을 명시하고 서버에서 검증한다.
- 수량/시간/권한 조건을 전이 전 필수 검증한다.
- 위반 시 표준 실패 코드를 반환한다.
- 불변 조건 검증 실패 시 데이터 변경은 부분 반영 없이 중단한다.
3. Product Decision
4. UX Decision
5. Tech Decision
- DB 제약조건과 서버 검증 로직을 함께 운영한다.
- 검증 실패는 즉시 중단하고 원자성 보장한다.
- 검증 규칙 변경은 회귀 테스트를 동반한다.
- 검증 규칙 버전 변경 시 배포 노트에 영향 범위를 기록한다.
6. Ops Decision
7. Implementation Contract (Optional)
7.1 API Contract
- 상태 전이 요청은 커밋 전 불변조건 검증을 반드시 수행한다.
- 검증 실패 응답은
INVARIANT_VIOLATION과 하위 사유 코드를 포함한다.
7.2 Data Contract
- DB 제약조건과 애플리케이션 검증 규칙은 동일 기준으로 유지한다.
- 불변조건 위반 시 트랜잭션 전체를 롤백한다.
7.3 Error/Observability Contract
- 불변조건 위반 이벤트는 규칙 ID를 포함해 기록한다.
- 규칙 버전 변경 시 배포 이력과 함께 추적 가능해야 한다.
7.4 Test/Acceptance Contract
- 각 불변조건 위반 케이스에서 부분 반영이 발생하지 않아야 한다.
- 정상 케이스에서 기존 성능 임계치 내 응답을 유지해야 한다.
8. Validation