docs(main): 복귀 초기화 방지 계획을 추가한다
This commit is contained in:
41
docs/20260715_메인_복귀시_중복_초기화_방지/prd.md
Normal file
41
docs/20260715_메인_복귀시_중복_초기화_방지/prd.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# PRD: 메인 복귀 시 중복 초기화 방지
|
||||
|
||||
## 목표
|
||||
|
||||
- 다른 페이지에서 `MainView`로 복귀할 때 메인 컨테이너의 인증 데이터 초기화 요청이 반복되지 않게 한다.
|
||||
- `contentView`와 각 탭 하위 화면의 기존 새로고침 동작은 유지한다.
|
||||
|
||||
## 문제/배경
|
||||
|
||||
- `MainView`는 `NavigationStack`의 루트로 유지되지만, destination에서 복귀하면 첫 번째 `.onAppear`가 다시 실행된다.
|
||||
- 이때 `pushTokenUpdate()`, 회원 정보, 이벤트 팝업, 재생 추적 요청이 매번 반복된다.
|
||||
|
||||
## 성공 기준
|
||||
|
||||
- 로그인 상태에서 메인 인증 데이터 초기화 요청은 동일한 `MainView` 생명주기 동안 한 번만 실행된다.
|
||||
- 비로그인 최초 진입은 로드 완료로 처리하지 않아 이후 로그인한 메인 진입에서 초기화 요청이 실행된다.
|
||||
- `contentView` 구성과 push 메시지 복귀 처리는 변경하지 않는다.
|
||||
- `SodaLive` Debug 빌드가 성공한다.
|
||||
|
||||
## 제외 범위
|
||||
|
||||
- 탭 하위 화면의 `.onAppear` 및 데이터 새로고침 정책 변경
|
||||
- `AppState` 내비게이션 구조 변경
|
||||
- `softRestart()`가 의도적으로 `MainView`를 재생성하는 동작 변경
|
||||
- 기존 사용자 작업인 이벤트 팝업 배경 및 프로젝트 버전 설정 변경
|
||||
|
||||
## 핵심 요구사항
|
||||
|
||||
- `MainView`가 소유하는 로컬 `@State`로 초기화 완료 여부를 관리한다.
|
||||
- 토큰이 비어 있을 때는 초기화 완료 상태를 설정하지 않는다.
|
||||
- 기존 첫 번째 `.onAppear`의 인증 데이터 요청에만 가드를 적용한다.
|
||||
|
||||
## 기술/운영 제약
|
||||
|
||||
- 수정 범위는 `SodaLive/Sources/V2/Main/MainView.swift`로 제한한다.
|
||||
- 현재 프로젝트에 테스트 번들 타깃이 없으므로 정적 확인과 공식 Debug 빌드로 검증한다.
|
||||
- 기존 작업 트리 변경을 보존한다.
|
||||
|
||||
## 미결정 사항
|
||||
|
||||
- 해당 없음.
|
||||
Reference in New Issue
Block a user