Skip to content

fix: 로그아웃 후 다른 계정으로 좋아요가 전송되는 문제 수정 - #992

Open
devfeijoa wants to merge 3 commits into
developfrom
fix/987
Open

devfeijoa wants to merge 3 commits into
developfrom
fix/987

Conversation

@devfeijoa

Copy link
Copy Markdown
Contributor

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • 좋아요 대기 기록에 소유 계정(서버 사용자 ID)을 함께 저장합니다.
    • 다른 계정이 기록을 가져오면 지웁니다.
    • 계정 정보가 없는 이전 형식의 기록도 지우고 보내지 않습니다.
  • UpdatedFeedRepository가 계정이 확인된 기록만 화면에 적용하고 전송합니다.
    • 계정 확인 전에는 저장·전송을 보류하고, 이전 계정 기록을 목록에 적용하지 않습니다.
    • 다른 계정이 확인되면 메모리와 저장소의 이전 계정 기록을 버립니다.
    • 세션 번호로 실행을 기다리던 저장·동기화 작업이 다른 계정에 닿지 않게 합니다.
  • 연결 지점
    • 로그아웃: 서버 로그아웃 성공·실패와 관계없이 기록을 버립니다.
    • 탈퇴: 성공 시 기록을 버립니다.
    • 메인 진입: 계정 확인을 시작하고, updateUserInfo() 성공 시 사용자 ID로 계정을 확인합니다.
  • 계정 식별에는 액세스 토큰과 AccountRepository.userId를 쓰지 않습니다. 토큰은 갱신만으로 바뀌고, userId는 로그아웃해도 초기화되지 않기 때문입니다.
  • 결함 기록 테스트 5개를 "계정 간 혼입이 없다"는 단언으로 바꿨습니다. 같은 계정 유지(로그인 만료 후, 앱 재실행 후)와 이전 형식 기록 미전송 테스트를 추가했습니다.

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

없음 (화면 변경 없음)

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

  • 로컬에서 다음 다섯 명령이 모두 통과했습니다.
    • ./gradlew :data:feed:testDebugUnitTest
    • ./gradlew :core:datastore:testDebugUnitTest
    • ./gradlew testDebugUnitTest
    • ./gradlew :app:assembleDebug
    • ./gradlew ktlintCheck
  • 실기기·에뮬레이터의 계정 전환 확인은 아직 하지 않았습니다.
  • 결정이 필요한 항목입니다. 현재는 기본안으로 구현되어 있습니다.
    • 계정 정보가 없는 기존 기록을 지울지
    • 탈퇴 시 기록을 버릴지
    • 다른 계정이 로그인하면 이전 계정 기록을 지울지
    • 스키마 버전을 올리지 않고 둘지
    • 해석하지 못해 보관한 기록을 로그아웃 때도 남길지
  • 남은 한계
    • 이미 네트워크로 나간 요청이 계정 전환과 겹치는 경우는 막지 못합니다.
    • 로그인 만료 후 다른 계정이 사용자 정보 수신 전에 누른 좋아요는 버려집니다.
  • 인증 재시도는 fix: 인증 재시도 문제 수정 #989, 로그아웃 실패 시 토큰 처리는 #988에서 따로 다룹니다.

Generated by Claude Code

기록에 서버 사용자 ID를 소유 계정으로 남기고, 다른 계정이 가져오면 지우는
claimPendingLikes와 로그아웃·탈퇴용 clearPendingLikes를 추가한다.
소유 계정이 없는 이전 형식의 기록은 어느 계정 것인지 알 수 없어 가져올 때 지운다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LadGaN6dV9EWkt5FMCWD6C
좋아요 대기 기록을 서버에서 받은 사용자 ID로 확인한 계정에 묶는다.
- 계정 확인 전에는 저장·전송을 보류하고, 이전 계정의 기록은 목록에 적용하지 않는다.
- 다른 계정이 확인되면 메모리 기록을 버리고 저장소에서도 이전 계정 기록을 지운다.
- 로그아웃·탈퇴용 discardPendingLikes를 추가한다.
- 세션 번호로 실행을 기다리던 저장·동기화 작업이 다른 계정에 닿지 않게 한다.

결함 기록 테스트 5개를 계정 간 혼입이 없다는 단언으로 바꾸고,
로그인 만료·재실행 뒤 같은 계정 유지와 이전 형식 기록 미전송 테스트를 추가한다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LadGaN6dV9EWkt5FMCWD6C
- 로그아웃은 서버 응답 성공·실패와 관계없이 보내지 못한 좋아요 기록을 버린다.
- 탈퇴 성공 시에도 같은 규칙으로 기록을 버린다.
- 메인 진입 시 계정 확인을 시작하고, 사용자 정보를 받은 뒤 사용자 ID로 계정을 확인한다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LadGaN6dV9EWkt5FMCWD6C
@coderabbitai

coderabbitai Bot commented Nov 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 58 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 89cb4987-a769-4653-ae09-b6659856cf3d
Commits

Reviewing files that changed from the base of the PR and between 2f03a72 and 010d775.

Files selected for processing: 9

  • app/src/main/java/com/into/websoso/ui/accountInfo/AccountInfoViewModel.kt
  • app/src/main/java/com/into/websoso/ui/main/MainViewModel.kt
  • app/src/main/java/com/into/websoso/ui/withdraw/second/WithdrawSecondViewModel.kt
  • core/datastore/src/main/java/com/into/websoso/core/datastore/datasource/feed/DefaultPendingFeedLikeStore.kt
  • core/datastore/src/test/java/com/into/websoso/core/datastore/datasource/feed/DefaultPendingFeedLikeStoreTest.kt
  • data/feed/src/main/java/com/into/websoso/data/feed/repository/UpdatedFeedRepository.kt
  • data/feed/src/main/java/com/into/websoso/data/feed/store/PendingFeedLikeStore.kt
  • data/feed/src/test/java/com/into/websoso/data/feed/repository/UpdatedFeedRepositoryAccountTest.kt
  • data/feed/src/test/java/com/into/websoso/data/feed/repository/UpdatedFeedRepositoryTestSupport.kt
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

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.

fix: 로그아웃 후 다른 계정으로 좋아요가 전송되는 문제 수정

2 participants