전화 인증 통합
ADR-210 전화 인증 통합
1. Metadata
- ADR ID: ADR-210
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
3. Product Decision
- 최초 가입 시 전화 인증을 필수 절차로 둔다.
- OTP 재시도/만료 규칙을 정책 파라미터로 관리한다.
- 전화 인증 실패 시 지원 경로를 제공한다.
- 전화 인증 완료 전 상태 변경 액션은 허용하지 않는다.
4. UX Decision
- 인증 진행/실패/재시도 상태를 사용자에게 명확히 안내한다.
- OTP 입력 화면에 남은 시도 횟수와 만료 시간을 항상 노출한다.
- 잠금 상태에서는 재시도 가능 시각과 지원 경로를 함께 안내한다.
5. Tech Decision
- OTP 재시도 횟수, 만료 시간, 차단 시간은 서버 정책값으로 중앙 관리한다.
6. Ops Decision
- 인증 실패 급증 구간 모니터링과 지원 응대 절차를 운영 기준으로 둔다.
7. Implementation Contract (Optional)
7.1 API Contract
- OTP 발송/검증 API를 분리하고 시도 횟수/만료 시각을 응답에 포함한다.
- 인증 전 상태 변경 액션 요청은
PHONE_VERIFICATION_REQUIRED로 차단한다.
7.2 Data Contract
- OTP 시도 카운터, 만료 시각, 잠금 해제 시각(
lock_until_utc)을 서버에 저장한다. - OTP 정책값(재시도/만료/잠금)은 버전 관리된 서버 설정으로 유지한다.
7.3 Error/Observability Contract
OTP_EXPIRED, OTP_ATTEMPTS_EXCEEDED, OTP_INVALID 코드를 표준화한다.- 인증 실패 급증 시 운영 알람을 발생시킨다.
7.4 Test/Acceptance Contract
- 재시도 임계값 초과 시 즉시 잠금이 적용되어야 한다.
- 만료 OTP는 항상 검증 실패해야 한다.
- 잠금 상태에서 검증 요청은 우회되지 않아야 한다.
8. Validation