Skip to content

[Fix] 4.1.0 출시 검증에서 나온 즉시 수정 4건 - #282

Merged
KiSeungMin merged 4 commits into
developfrom
chore/4.1.0-release
Sep 25, 2026
Merged

KiSeungMin merged 4 commits into
developfrom
chore/4.1.0-release

Conversation

@KiSeungMin

Copy link
Copy Markdown
Contributor

✔️ 연관 이슈

  • 없음 (4.1.0 출시 전 검증에서 찾은 것들입니다)

📝 작업 내용

4.1.0 출시 전 검증(정적 분석, 테스트, 성능·로직·부작용·권한 검토)에서 나온 즉시 수정 항목 3건과, 확인 요청받은 복습 완료 중복 저장 1건을 고쳤습니다. 검토 범위는 4.0.0 출시 감사 이후(c84d1b3..HEAD) 83커밋입니다.

  • 탈퇴와 로그아웃이 실패해도 아무 말 없이 멈추던 것: 사용자는 화면 그대로인 것만 보고, 오류는 Sentry 에 fatal 로만 쌓였습니다.
  • 스터디룸 조회에 실패하면 앞서 열었던 방을 그리던 것: 보고 있지도 않은 방에서 나가게 될 수 있었습니다.
  • 복습 세트를 불러오는 중에 나가면 다른 세트의 문제가 섞이던 것: 복습 횟수가 엉뚱한 세트에 올라갔습니다.
  • 복습 완료 버튼이 같은 프레임에 두 번 눌리면 두 번 저장되던 것

1. 탈퇴·로그아웃 실패 경로 (KakaoAuthService, MyPageScreen)

  • 이번 릴리즈부터 실제로 도는 경로입니다: [bug] loginMethod 대소문자가 어긋나 소셜 연동 해제와 로그아웃이 실행되지 않습니다 #254 에서 loginMethod 대소문자를 맞추면서, 그동안 한 번도 안 걸리던 게스트 분기와 소셜 연동 해제가 이제 실행됩니다. 게스트 로그아웃이 진짜로 서버 계정을 지웁니다.
  • 카카오만 예외를 감싸지 않았습니다: unlink 가 실패하면 deleteAccount 가 서버 삭제에 닿지 못하고 던졌습니다. 구글·애플처럼 실패를 삼키고 탈퇴를 이어갑니다.
  • 콜백이 예외를 못 받았습니다: VoidCallback 자리에 async 클로저를 넘겨서 반환 Future 를 버리고 있었습니다. 실패를 받아 안내하고 화면을 넘기지 않습니다.

2. 스터디룸 상세의 방 번호 확인 (StudyRoomDetailScreen)

  • 번호 확인이 로딩 중에만 걸려 있었습니다: 프로바이더는 방을 하나만 들고 있고 조회가 실패하면 앞 방이 그대로 남습니다.
  • 화면과 동작이 어긋났습니다: 제목·멤버·랭킹은 앞 방인데 나가기(leaveRoom)와 삭제는 이 화면의 방 번호로 나갔습니다. 방장 메뉴도 앞 방 기준으로 열렸습니다.
  • 번호가 다르면 없는 것으로 보고 "방을 불러오지 못했어요"를 띄웁니다. 나가기 확인 창도 같은 기준으로 맞췄습니다.

3. 복습 세트 로더의 생존 확인 (PracticeDetailLoader)

  • 두 await 사이에 mounted 확인이 없었습니다: 세트를 받는 동안 나가서 다른 세트를 열면, 늦게 끝난 쪽이 moveToPractice 로 공용 상태를 덮었습니다.
  • 화면에 떠 있는 세트에 다른 세트의 문제가 들어갔고, 그대로 복습하면 복습 횟수가 그 세트에 올라갔습니다.
  • 고친 줄을 빼면 새로 넣은 테스트가 실패하는 것까지 확인했습니다.

4. 복습 완료 중복 저장 (PracticeCompletionScreen)

  • _submitting 으로 버튼을 잠그고 있었지만 판정이 빌드 시점이라, 다시 그리기 전에 들어온 두 번째 탭은 그대로 콜백을 탔습니다. 눌린 순간에도 확인합니다.

✅ 검증

  • flutter analyze: error 0, warning 0 (develop 대비 새로 늘어난 info 없음)
  • flutter test: 2164개 통과, 57개 skip, 실패 0 (새 테스트 5개 포함)
  • 새 테스트: 로그아웃 실패 시 화면을 넘기지 않음, 앞서 연 방을 그리지 않음, 죽은 로더가 공용 상태를 덮지 않음, 불러오는 동안 뼈대가 보임, 완료 버튼 연타 시 한 번만 저장

⚠️ 출시할 때 볼 것

  • 게스트 로그아웃이 이번 버전부터 실제로 계정을 지웁니다. 다이얼로그 문구는 예전부터 그렇게 안내하고 있었지만 동작은 이번에 처음 맞춰집니다. 단계적 출시 중에 이 경로를 Sentry 에서 같이 보시면 좋겠습니다.
  • 탈퇴할 때 구글·애플 로그인 창이 한 번 더 뜹니다. 연동 해제가 실제로 돌기 시작해서입니다. 취소하면 연동 해제 실패 토스트가 뜨고 서버 탈퇴는 그대로 진행됩니다. 안내 문구 보강은 이번 PR 범위에 넣지 않았습니다.

🙏 전달사항

검증에서 나온 🟠 항목은 이번에 넣지 않았습니다. 따로 이슈로 뺄지 정하면 좋겠습니다. 큰 것만 적으면,

  • 이미지 디코딩 크기 제한이 앱 전체에 거의 없습니다 (전체화면 썸네일이 원본 해상도로, 치장 512px 그림이 40px 자리에)
  • 복습 인증 저장에 중복 제출 방지가 없습니다 (저장 성공 뒤 후속 단계가 실패하면 "저장 실패"가 떠서 다시 누르게 됩니다)
  • 로그아웃해도 스터디룸과 복습 추천 상태가 남아 다음 계정 화면에 보입니다
  • 알림으로 공유 문제를 열면 방 상세 조회가 두 벌 나갑니다

…이 실제로 계정을 지우고 소셜 연동 해제도 실제로 도는데, 카카오 unlink 만 예외를 감싸지 않아 실패하면 서버 탈퇴까지 멈췄다, 마이페이지의 두 콜백은 async 를 VoidCallback 자리에 넘겨서 예외를 아무도 받지 못해 화면은 그대로고 Sentry 에만 fatal 로 쌓였다, 구글 애플처럼 카카오도 실패를 삼켜 탈퇴를 이어가고 화면은 실패를 알린 뒤 넘어가지 않는다
… 방이 남는데 번호 확인이 로딩 중에만 걸려 있었다, 제목과 멤버는 앞 방인데 나가기와 삭제는 이 화면의 방 번호로 나가서 보고 있지도 않은 방에서 나가게 된다, 번호가 다르면 없는 것으로 보고 불러오지 못했다고 알린다
…t 사이에 화면이 살아 있는지 보지 않았다, 세트를 받는 동안 나가서 다른 세트를 열면 늦게 끝난 쪽이 공용 상태를 덮어 화면에 떠 있는 세트에 다른 세트의 문제가 들어가고 복습 횟수도 엉뚱한 세트에 올라간다, 화면이 사라졌으면 이어가지 않는다
…그 전에 들어온 두 번째 탭은 그대로 콜백을 탔다, 복습 횟수와 경험치가 두 번 오르는 자리라 눌린 순간에도 확인한다
@KiSeungMin KiSeungMin added the Bug Something isn't working label Sep 25, 2026
@KiSeungMin KiSeungMin self-assigned this Sep 25, 2026
@KiSeungMin
KiSeungMin merged commit 36fb246 into develop Sep 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant