초기 진입 및 라우팅 통합
ADR-190 초기 진입 및 라우팅 통합
1. Metadata
- ADR ID: ADR-190
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
3. Product Decision
- 앱 최초 진입 라우팅 판정 순서는
유지보수 공지 -> 강제 업데이트 -> 세션 복원 -> 기본 탐색 진입으로 고정한다. - 마지막 화면 복원은 유효 경로만 허용한다.
- 복원 실패 시 로그인 강제 없이 기본 탐색 화면으로 폴백한다.
- 사용자 모드/파트너 모드는 저장된 상태를 우선 복원한다.
4. UX Decision
- 최초 진입/복원/복구 시나리오에서 화면 전환을 예측 가능하게 유지한다.
- 부트스트랩 지연 또는 복원 실패 시 기술 상세 대신 짧은 안내 후 기본 탐색으로 진입시킨다.
- 최초 실행에서도 비로그인 탐색/상세 조회는 허용한다.
5. Tech Decision
- 라우팅 복원 시 유효 경로 검증을 서버/클라이언트 경계에서 일관되게 적용한다.
- 부트스트랩 결과 상태(
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