반복 미이행 제재 규칙 통합
ADR-100 반복 미이행 제재 규칙 통합
1. Metadata
- ADR ID: ADR-100
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
- 잦은 expired/cancelled에 대해 신용점수 기반 제재를 적용한다.
- 제재 임계값과 기간은 정책 파라미터로 관리한다.
- 제재 상태는 예약 전 안내한다.
- 제재 판정은 사용자 단위 누적 이벤트로 계산한다.
- 제재 해제는 기간 경과 또는 운영 승인으로 처리한다.
- 기본 관측 윈도우는 최근 7일(
WINDOW_DAYS=7)로 시작한다. - 기본 집계 이벤트는 서버 확정
expired를 우선 사용하고, cancelled는 정책 플래그로 포함 여부를 제어한다. - 제재 레벨과 효과(유효시간 단축/일시 차단)는 정책 버전으로 관리한다.
3. Product Decision
- 사용자 신용점수 기반 제재 정책을 적용한다.
- 제재 단계와 기간을 정책으로 고정한다.
- 이의제기 경로를 사용자에게 제공한다.
- 제재 적용/해제 사유를 사용자에게 명시한다.
4. UX Decision
- 제재 사유/기간/해제조건을 사용자에게 명확히 안내한다.
- 이의제기 경로를 고정 위치에 제공한다.
- 제재 단계별 제한 기능을 일관되게 표시한다.
- 제재 적용 직후 알림과 인앱 안내를 동시에 제공한다.
5. Tech Decision
- 제재 점수 계산과 적용을 서버 배치로 처리한다.
- 실시간 차단 여부는 최신 점수 스냅샷으로 판정한다.
- 제재 이력은 변경 사유와 함께 저장한다.
- 제재 계산 실패 시 기본은 보수적 차단보다 재계산 보류를 우선한다.
6. Ops Decision
- 제재 이의접수/심사/결과통지 절차를 정의한다.
- 심사 근거 데이터와 보관 기간을 명시한다.
- 오판 제재 해제 SLA를 정의한다.
- 제재 해제 시 재발 방지 안내를 함께 제공한다.
7. Implementation Contract (Optional)
7.1 API Contract
- 사용자 액션 전 점검 응답은
penalty_level, penalty_reason, unblock_at_utc를 포함한다. - 제재 중 요청은
PENALTY_ACTIVE로 거부한다.
7.2 Data Contract
- 제재 계산은
user_id + window_days + policy_version 키로 관리한다. - 제재 이력은
applied_at, released_at, reason_code를 필수 저장한다.
7.3 Error/Observability Contract
- 임계값 도달/해제 이벤트를 별도 감사 이벤트로 기록한다.
- 오판 제재 복구 시간(SLA)을 운영 지표로 추적한다.
7.4 Test/Acceptance Contract
- 임계값 직전/직후 요청에서 제재 적용 여부가 정확히 반영되어야 한다.
- 제재 해제 후 동일 액션이 정상 허용되어야 한다.
8. Validation