SCENARIO-USER-010_앱 최초 실행 및 첫 행동 흐름

SCENARIO-USER-010_앱 최초 실행 및 첫 행동 흐름

SCENARIO-USER-010 앱 최초 실행 및 첫 행동 흐름

1. Metadata

  • Status: draft
  • Date: 2026-03-09
  • Owner: YSY
  • Related ADRs: ADR-190, ADR-200, ADR-210, ADR-260

2. Goal

비로그인 사용자가 앱을 처음 실행해 탐색을 시작하고, 첫 상태 변경 액션 시 로그인 인터셉트를 거쳐 원래 액션으로 복귀하는 표준 흐름을 정의한다.

3. Preconditions

  1. 앱은 신규 설치 상태이며 유효 세션이 없다.
  2. 네트워크는 기본적으로 연결되어 있다.
  3. 위치 권한은 아직 결정되지 않았다.

4. Main Flow (Happy Path)

  1. 앱 실행 -> Bootstrap 시작
  2. 시스템 점검
  • 유지보수/강제 업데이트 조건이 없으면 다음 단계로 진행
  1. 라우팅 초기화
  • 저장 경로가 없거나 복원 불가면 기본 탐색 화면으로 진입
  1. 탐색 화면 진입
  • 비로그인 상태로 리스트/상세 조회 가능
  1. 상세 진입 후 상태 변경 액션(예약/구독 등) 선택
  2. 로그인 인터셉트 표시
  • 바텀시트/풀스크린 로그인으로 인증 유도
  1. 전화 인증(OTP) 완료
  2. 원래 액션으로 자동 복귀
  3. 액션 성공/실패 결과를 즉시 피드백

5. Alternate Flows

A1. 저장 라우트 복원 실패

  • 유효하지 않은 경로/파라미터는 폐기하고 기본 탐색으로 진입한다.
  • 사용자에게 기술적 오류 상세 대신 간단 안내를 1회 표시한다.

A2. 최초 실행 오프라인

  • 오프라인 상태 UI를 먼저 노출하고 재시도 CTA를 제공한다.
  • 연결 복구 시 동일 컨텍스트에서 재시도한다.

A3. 위치 권한 거부

  • 탐색은 계속 허용하고 위치 기반 정밀 결과만 제한한다.
  • 권한 요청 재시도 CTA와 수동 지역 선택 경로를 제공한다.

A4. OTP 실패/만료

  • 남은 시도 횟수와 만료 시간을 명시한다.
  • 임계 초과 시 잠금 상태를 안내하고 재시도 가능 시각을 제공한다.

A5. 로그인 완료 후 복귀 토큰 만료

  • 복귀 실패를 안내하고 사용자를 안전한 기본 화면(탐색/상세)으로 유도한다.
  • 상태 변경 액션은 사용자가 명시적으로 다시 실행하도록 한다.

6. UX State Matrix

StateTriggerUI ResponseCTA
bootstrap_loading앱 시작스플래시/로딩대기
bootstrap_fallback부트스트랩 지연/복원 실패기본 탐색 진입 + 안내계속 탐색
auth_intercept비로그인 상태 변경 액션로그인 인터셉트로그인/취소
otp_verify전화 인증 필요OTP 입력 + 남은 시도/만료 시간인증/재전송
empty_permission위치 권한 거부권한 제한 안내권한 허용/지역 선택
empty_offline네트워크 단절오프라인 안내재시도
empty_no_data인근 데이터 없음빈 상태 안내필터 완화/반경 확장

7. ADR Impact

  1. ADR-190: 최초 실행 분기 순서와 복원 실패 폴백을 명시한다.
  2. ADR-200: 인터셉트 후 복귀 토큰 정책과 실패 처리 기준을 명시한다.
  3. ADR-210: OTP 실패/잠금 UX 정보 노출 기준을 명시한다.
  4. ADR-260: 최초 실행 빈 상태(권한/오프라인/데이터 없음) 분기 기준을 명시한다.

8. Acceptance Criteria

  • 최초 실행 시 기본 탐색 화면으로 안정적으로 진입한다.
  • 비로그인 상태 변경 액션은 항상 로그인 인터셉트로 연결된다.
  • 로그인/OTP 완료 후 원래 액션 컨텍스트로 복귀한다.
  • 복귀 실패/권한 거부/오프라인/빈 데이터 상태가 각각 다른 UX로 노출된다.
  • 관련 ADR/UX/SPEC 문서가 본 시나리오와 충돌하지 않는다.