초기 진입 및 라우팅 통합

초기 진입 및 라우팅 통합

ADR-190 초기 진입 및 라우팅 통합

1. Metadata

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

2. Domain Decision

  • 해당 없음

3. Product Decision

  1. 앱 최초 진입 라우팅 판정 순서는 유지보수 공지 -> 강제 업데이트 -> 세션 복원 -> 기본 탐색 진입으로 고정한다.
  2. 마지막 화면 복원은 유효 경로만 허용한다.
  3. 복원 실패 시 로그인 강제 없이 기본 탐색 화면으로 폴백한다.
  4. 사용자 모드/파트너 모드는 저장된 상태를 우선 복원한다.

4. UX Decision

  1. 최초 진입/복원/복구 시나리오에서 화면 전환을 예측 가능하게 유지한다.
  2. 부트스트랩 지연 또는 복원 실패 시 기술 상세 대신 짧은 안내 후 기본 탐색으로 진입시킨다.
  3. 최초 실행에서도 비로그인 탐색/상세 조회는 허용한다.

5. Tech Decision

  1. 라우팅 복원 시 유효 경로 검증을 서버/클라이언트 경계에서 일관되게 적용한다.
  2. 부트스트랩 결과 상태(maintenance|force_update|restored|fallback)를 내부 상태로 기록한다.

6. Ops Decision

  • 해당 없음

7. Implementation Contract (Optional)

7.1 API Contract

  • 부트스트랩 응답은 최소 maintenance, force_update, default_route를 포함한다.
  • 유지보수/강제업데이트 조건이 없으면 클라이언트는 복원 또는 기본 탐색으로 진입한다.

7.2 Data Contract

  • 저장 라우트는 route_name, route_params, saved_at_utc 구조를 사용한다.
  • 복원 실패 시 저장 라우트는 폐기하고 fallback 상태를 기록한다.

7.3 Error/Observability Contract

  • 부트스트랩 타임아웃은 BOOTSTRAP_TIMEOUT으로 기록한다.
  • 유효하지 않은 복원 경로는 ROUTE_RESTORE_INVALID로 기록한다.

7.4 Test/Acceptance Contract

  • 신규 설치/세션 없음 상태에서 앱은 항상 탐색 화면까지 진입해야 한다.
  • 잘못된 저장 라우트가 있어도 크래시 없이 기본 탐색으로 폴백해야 한다.

8. Validation

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