2.2 KiB
2.2 KiB
메인 복귀 시 중복 초기화 방지 계획
Phase 1: 현재 동작 확인
- Task 1.1: MainView 생명주기와 내비게이션 구조 확인
- 확인:
SodaLive/Sources/V2/Main/MainView.swift - 확인:
SodaLive/Sources/ContentView.swift - 확인:
SodaLive/Sources/App/AppState.swift - 검증 기준:
MainView가NavigationStack루트에 유지되고 복귀 시 첫 번째.onAppear의 요청이 반복되는 구조를 확인한다.
- 확인:
Phase 2: 중복 초기화 차단
- Task 2.1: MainView 인증 데이터 초기화에 1회 가드 적용
- 수정:
SodaLive/Sources/V2/Main/MainView.swift - 검증 기준: 로그인 상태에서
hasLoadedMainData가false인 경우에만 인증 데이터 요청이 실행된다. - 검증 기준:
contentView와 push 메시지용 두 번째.onAppear는 변경되지 않는다.
- 수정:
Phase 3: 검증
- Task 3.1: 변경 범위 및 Debug 빌드 검증
- 확인:
SodaLive/Sources/V2/Main/MainView.swift - 실행 명령:
git diff --check - 실행 명령:
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug -destination 'generic/platform=iOS Simulator' -derivedDataPath /private/tmp/SodaLiveDerivedData CODE_SIGNING_ALLOWED=NO build - 기대 결과: 공백 오류와 컴파일 오류 없이 빌드가 성공한다.
- 확인:
검증 기록
- 2026-07-15:
ContentView와AppState를 확인해 일반 상세 이동은navigationPath에 destination을 추가하고, 메인 복귀는 path를 제거하는 구조임을 확인했다.MainView의 인증 데이터 요청은 첫 번째.onAppear에 있어 복귀마다 다시 실행될 수 있다. - 2026-07-15:
MainView에hasLoadedMainData상태를 추가하고, 토큰이 존재하면서 아직 로드하지 않은 경우에만 인증 데이터 초기화 요청을 실행하도록 변경했다.contentView와 push 메시지용 두 번째.onAppear는 변경하지 않았다. - 2026-07-15:
git diff --check가 exit 0으로 통과했다. Simulator 접근이 필요한 빌드는 샌드박스 밖에서 실행했으며, 위xcodebuild명령이 기존 경고만 출력하고** BUILD SUCCEEDED **및 exit 0으로 완료됐다.