무결성 및 불변 조건 검증 규칙 통합

무결성 및 불변 조건 검증 규칙 통합

ADR-110 무결성 및 불변 조건 검증 규칙 통합

1. Metadata

  • ADR ID: ADR-110
  • Status: draft
  • Date: 2026-03-09
  • Owner: YSY

2. Domain Decision

  1. 상태 전이 불변 조건을 명시하고 서버에서 검증한다.
  2. 수량/시간/권한 조건을 전이 전 필수 검증한다.
  3. 위반 시 표준 실패 코드를 반환한다.
  4. 불변 조건 검증 실패 시 데이터 변경은 부분 반영 없이 중단한다.

3. Product Decision

  • 해당 없음

4. UX Decision

  • 해당 없음

5. Tech Decision

  1. DB 제약조건과 서버 검증 로직을 함께 운영한다.
  2. 검증 실패는 즉시 중단하고 원자성 보장한다.
  3. 검증 규칙 변경은 회귀 테스트를 동반한다.
  4. 검증 규칙 버전 변경 시 배포 노트에 영향 범위를 기록한다.

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

  • Domain/Product/UX/Tech/Ops 결정이 충돌하지 않는다.
  • 구현 기준은 SPEC과 정합성을 유지한다.
  • 운영 절차는 RUNBOOK으로 연결된다.