docs(main): 복귀 초기화 방지 계획을 추가한다

This commit is contained in:
Yu Sung
2026-07-15 14:41:46 +09:00
parent 063c2808de
commit e466774a8a
2 changed files with 71 additions and 0 deletions

View 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 빌드로 검증한다.
- 기존 작업 트리 변경을 보존한다.
## 미결정 사항
- 해당 없음.