전화 인증 통합

전화 인증 통합

ADR-210 전화 인증 통합

1. Metadata

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

2. Domain Decision

  • 해당 없음

3. Product Decision

  1. 최초 가입 시 전화 인증을 필수 절차로 둔다.
  2. OTP 재시도/만료 규칙을 정책 파라미터로 관리한다.
  3. 전화 인증 실패 시 지원 경로를 제공한다.
  4. 전화 인증 완료 전 상태 변경 액션은 허용하지 않는다.

4. UX Decision

  1. 인증 진행/실패/재시도 상태를 사용자에게 명확히 안내한다.
  2. OTP 입력 화면에 남은 시도 횟수와 만료 시간을 항상 노출한다.
  3. 잠금 상태에서는 재시도 가능 시각과 지원 경로를 함께 안내한다.

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

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