Skip to content

[GMSS-287]탈퇴/로그아웃 시 메인 탭 ViewModel이 정리되지 않던 문제 수정 - #68

Merged
soyeonLee126 merged 1 commit into
developfrom
fix/delete-chatroomlist-cache
Sep 28, 2026
Merged

soyeonLee126 merged 1 commit into
developfrom
fix/delete-chatroomlist-cache

Conversation

@seunghee17

@seunghee17 seunghee17 commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

작업 개요

탈퇴 또는 로그아웃 후 이전 계정의 채팅방 리스트가 간헐적으로 남아있는 문제를 고칩니다.

원인은 MainScreen 안쪽 탭(홈/보관함/대화 등)의 ViewModel이 Activity의 ViewModelStore에 직접 매달려 있었다는 점입니다. 탈퇴/로그아웃으로 MainKey가 루트 백스택에서 빠져도 이 ViewModel들은 정리되지 않았고, 재로그인 시 같은 ChattingListViewModel 인스턴스(옛 목록 상태 포함)가 그대로 재사용되어, 새 목록 조회가 늦거나 실패하면 옛 목록이 그대로 노출됐습니다.

작업 유형

  • feat: 새 기능
  • fix: 버그 수정
  • refactor: 리팩토링 (동작 변경 없음)
  • build: 빌드/의존성 설정
  • chore: 기타 (문서, 설정 등)
  • test: 테스트 추가/수정

변경 사항

  • GamssRootNavHost의 루트 NavDisplay 엔트리에 rememberViewModelStoreNavEntryDecorator를 추가해, MainKey 엔트리마다 독립된 ViewModelStore를 갖게 합니다.
  • 탈퇴/세션 만료로 replaceRoot(LoginKey)가 MainKey를 루트 백스택에서 pop하면 이 스토어가 clear되고, 그 안의 탭별 ViewModelStore(EntryViewModel)도 cascade로 함께 clear되어 ChattingListViewModel을 포함한 메인 영역의 모든 ViewModel이 로그아웃/탈퇴 시점에 정리됩니다.
  • 탭 전환만으로는 MainKey 자체가 pop되지 않으므로 지워지지 않아, 기존 동작(탭 이동 시 화면/ViewModel 상태 유지)에는 영향이 없습니다.

관련 이슈

  • Closes #

관련 작업 (Notion)

GMSS-287

스크린샷 / 동작 화면

  • UI 변경 없음(내비게이션 스코프 정리)

체크리스트

  • base 브랜치가 develop으로 설정되어 있다
  • 로컬 빌드 및 실행을 확인했다
  • 커밋 메시지가 컨벤션(feat:, fix: 등)을 따른다
  • 불필요한 로그/주석/디버그 코드를 제거했다
  • 리뷰어가 이해할 수 있도록 설명을 작성했다

리뷰 요청 사항

  1. MainScreen 안쪽 다른 탭(홈/보관함/설정 등)의 ViewModel도 같은 구조로 정리되는지 함께 봐 주세요. 이번 수정은 특정 탭이 아니라 루트 스코프 자체를 고쳐서, 모든 탭에 적용됩니다.

- Nav3 항목에 저장 가능한 상태 홀더와 ViewModelStore 데코레이터를 연결
- decorate entries를 NavDisplay에 전달해 화면 전환 시 상태 캐시를 유지
@seunghee17 seunghee17 changed the title fix: 탈퇴/로그아웃 시 메인 탭 ViewModel이 정리되지 않던 문제 수정 [GMSS-287]탈퇴/로그아웃 시 메인 탭 ViewModel이 정리되지 않던 문제 수정 Sep 22, 2026
@seunghee17
seunghee17 marked this pull request as ready for review September 22, 2026 10:46
@soyeonLee126
soyeonLee126 merged commit cb4c986 into develop Sep 28, 2026
6 checks passed
@soyeonLee126
soyeonLee126 deleted the fix/delete-chatroomlist-cache branch September 30, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants