Skip to content

[Hotfix/#197] qa 2#198

Merged
chanubc merged 3 commits into
developfrom
hotfix/#197-qa-2
Oct 29, 2025
Merged

[Hotfix/#197] qa 2#198
chanubc merged 3 commits into
developfrom
hotfix/#197-qa-2

Conversation

@chanubc

@chanubc chanubc commented Oct 28, 2025

Copy link
Copy Markdown
Member

✅ 𝗖𝗵𝗲𝗰𝗸-𝗟𝗶𝘀𝘁

  • merge할 브랜치의 위치를 확인해 주세요(main❌/develop⭕)
  • 리뷰가 필요한 경우 리뷰어를 지정해 주세요
  • P1 단계의 리뷰는 필수로 반영합니다.
  • Approve된 PR은 assigner가 머지하고, 수정 요청이 온 경우 수정 후 다시 push를 합니다.

📌 𝗜𝘀𝘀𝘂𝗲𝘀

📎𝗪𝗼𝗿𝗸 𝗗𝗲𝘀𝗰𝗿𝗶𝗽𝘁𝗶𝗼𝗻

  • 퀴즈 화면 텍스트 수정
  • 시간 포멧 수정
  • 앱이 백그라운드에 가도 시간 복구되도록 savedStateHandle 활용

📷 𝗦𝗰𝗿𝗲𝗲𝗻𝘀𝗵𝗼𝘁

image

💬 𝗧𝗼 𝗥𝗲𝘃𝗶𝗲𝘄𝗲𝗿𝘀

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 퀴즈 화면에 새로운 텍스트 문자열 리소스 추가
  • Refactor

    • 퀴즈 화면의 시간 표시 형식 개선 (가독성 향상)
    • 보드 요청 버튼 텍스트 파라미터화로 유연성 증대
    • 퀴즈 시작 시간 저장 메커니즘 개선

@chanubc chanubc requested a review from sohyun127 October 28, 2025 15:54
@chanubc chanubc self-assigned this Oct 28, 2025
@coderabbitai

coderabbitai Bot commented Oct 28, 2025

Copy link
Copy Markdown

Walkthrough

디자인 시스템 BoardRequestButton에 텍스트 파라미터(textWhite, textSky)를 추가하여 외부에서 텍스트 커스터마이징 가능하게 리팩토링했습니다. QuizMainScreen의 time 파라미터를 필수로 변경하고, 시간 포맷팅을 일관되게 "%02d : %02d" 형식으로 업데이트했습니다. QuizStartViewModel에 SavedStateHandle을 통합하여 상태 지속성을 개선했습니다.

Changes

Cohort / File(s) 변경 요약
디자인 시스템 버튼 리팩토링
core/designsystem/src/main/java/com/teamwable/designsystem/component/button/WableBoardRequestButton.kt
textWhite, textSky 파라미터 추가 (기본값 stringResource 포함), getAnnotatedString() → getRequestBoardString(textWhite, textSky) 함수명 변경 및 구현 업데이트
퀴즈 화면 UI 텍스트 업데이트
feature/quiz/src/main/res/values/strings.xml
str_quiz_main_btn_white ("와블에 대한 새로운 의견이 있다면?"), str_quiz_main_btn_sky ("→") 문자열 리소스 추가
퀴즈 메인 화면 리팩토링
feature/quiz/src/main/java/com/teamwable/quiz/QuizMainScreen.kt
time 파라미터 필수로 변경 (기본값 제거), BoardRequestButton에 textWhite/textSky 전달, QuizMainScreenPreview 호출 사이트 업데이트
퀴즈 시간 포맷팅 통일
feature/quiz/src/main/java/com/teamwable/quiz/QuizMainViewModel.kt
시간 포맷팅 "%d:%02d" → "%02d : %02d" 변경, remainingTime 초기값 "00:00" → "00 : 00" 수정
상태 지속성 개선
feature/quiz/src/main/java/com/teamwable/quiz/start/QuizStartViewModel.kt
SavedStateHandle 추가, startTimeMillis를 SavedStateHandle로 백업, System.currentTimeMillis() → SystemClock.elapsedRealtime() 변경

예상 코드 리뷰 난이도

🎯 3 (중간) | ⏱️ ~20분

  • 주의 필요 영역:
    • QuizStartViewModel의 SavedStateHandle 통합 및 elapsedRealtime() 사용 변경으로 인한 시간 계산 로직 검증 필요
    • QuizMainScreen의 time 파라미터 필수화로 인한 기존 호출 사이트 영향도 확인 필요
    • 시간 포맷팅 변경 (공백 추가)이 모든 화면에서 일관되게 적용되었는지 확인

관련 PR 목록

제안 라벨

🐻 찬우, ☕ [COMPOSE]

제안 리뷰어

  • sohyun127

🐰 시간의 흐름, 버튼의 변신

포맷팅 맞춰 춤을 추고 🎵
시간은 흐르고, 상태는 기억하고 ⏱️
버튼은 텍스트를 받아안으니 🎀
주제별 의견, 새로운 길 가네! 🌟
와블의 변화, 한 발 더 나아가! 🚀

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 2 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title Check ❓ Inconclusive PR 제목 "[Hotfix/#197] qa 2"는 호트픽스와 관련된 변경임을 나타내지만, 매우 모호합니다. "qa 2"는 구체적인 변경 내용을 전달하지 못하며, 실제 변경 사항은 퀴즈 화면 텍스트 수정, 시간 형식 조정, SavedStateHandle을 통한 백그라운드 시간 복구 등 여러 항목을 포함하고 있습니다. 제목이 일부 관련성이 있지만 주요 변경 사항을 명확하게 요약하지 못하고 있습니다. 제목을 더욱 구체적이고 설명적으로 개선해주시기 바랍니다. 예를 들어 "[Hotfix/#197] 퀴즈 화면 시간 포맷 수정 및 백그라운드 복구 기능 추가" 같이 주요 변경 사항을 명확하게 전달하는 제목으로 수정을 검토해주세요.
Linked Issues Check ❓ Inconclusive 링크된 이슈 #197은 제목만 있고 구체적인 목표나 체크리스트 항목이 명시되어 있지 않습니다. 이슈의 설명 섹션에는 빈 작업 목록만 존재하여 PR의 코드 변경 사항이 명확한 요구 사항을 충족하는지 검증할 수 없습니다. PR에서 수행한 퀴즈 화면 텍스트 수정, 시간 포멧 조정, SavedStateHandle 구현 등은 "2차 qa 반영"이라는 일반적인 목표와 관련이 있어 보이지만, 구체적인 검증 기준이 부족합니다. 이슈 #197에서 명시적인 요구 사항이나 검증 기준이 제공되지 않아 PR의 변경 사항과 이슈 요구 사항의 일대일 대응을 확인하기 어렵습니다. 향후 이슈 작성 시 구체적인 체크리스트와 명확한 요구 사항을 포함하여 PR 검토 시 요구 사항 충족 여부를 명확하게 검증할 수 있도록 해주기 바랍니다.
✅ Passed checks (2 passed)
Check name Status Explanation
Out of Scope Changes Check ✅ Passed PR의 모든 변경 사항은 명시된 작업 설명과 관련이 있습니다. WableBoardRequestButton에 버튼 텍스트 커스터마이징을 위한 파라미터 추가, QuizMainScreen의 시간 포멧 변경, QuizMainViewModel의 시간 형식 업데이트, QuizStartViewModel의 SavedStateHandle 추가, 그리고 strings.xml의 새로운 문자열 리소스 추가는 모두 퀴즈 화면 텍스트 수정, 시간 포멧 조정, 백그라운드 시간 복구라는 세 가지 작업 항목에 직접 대응됩니다.
Description Check ✅ Passed PR description은 템플릿의 모든 필수 섹션을 포함하고 있습니다. 체크리스트 항목들(develop 브랜치 확인, 리뷰어 지정, P1 리뷰 반영)이 완비되어 있고, 이슈 번호(#197)가 명시되었으며, 작업 설명이 세 개의 항목으로 명확하게 정리되어 있습니다. 또한 스크린샷이 포함되어 변경 사항을 시각적으로 보여줍니다. "To Reviewers" 섹션이 비어있지만, 이는 필수 섹션이 아닌 추가 정보 영역으로서 PR의 구조적 완성도에 큰 영향을 주지 않습니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch hotfix/#197-qa-2

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@chanubc chanubc added 🚑️ [HOTFIX] 이슈나 QA에서 발생된 급하게 해결해야 될 문제 🐻 찬우 차은우 labels Oct 28, 2025

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
core/designsystem/src/main/java/com/teamwable/designsystem/component/button/WableBoardRequestButton.kt (1)

16-17: 버튼 컴포넌트의 텍스트 커스터마이징이 개선되었습니다.

BoardRequestButton에 textWhite와 textSky 파라미터를 추가하여 외부에서 텍스트를 커스터마이징할 수 있도록 리팩토링했습니다. 기본값을 제공하여 하위 호환성을 유지하면서도, 필요한 경우 호출자가 텍스트를 오버라이드할 수 있는 유연성을 제공합니다. 내부 함수도 적절하게 리팩토링되어 전달받은 파라미터를 사용하도록 변경되었습니다.

Also applies to: 21-21, 29-35

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 46d463b and 56de1ae.

📒 Files selected for processing (5)
  • core/designsystem/src/main/java/com/teamwable/designsystem/component/button/WableBoardRequestButton.kt (1 hunks)
  • feature/quiz/src/main/java/com/teamwable/quiz/QuizMainScreen.kt (3 hunks)
  • feature/quiz/src/main/java/com/teamwable/quiz/QuizMainViewModel.kt (1 hunks)
  • feature/quiz/src/main/java/com/teamwable/quiz/start/QuizStartViewModel.kt (4 hunks)
  • feature/quiz/src/main/res/values/strings.xml (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
core/designsystem/src/main/java/com/teamwable/designsystem/component/button/WableBoardRequestButton.kt (1)
core/designsystem/src/main/java/com/teamwable/designsystem/component/button/WableButton.kt (1)
  • WableAnnotatedTextButton (91-111)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: PR Checker
🔇 Additional comments (7)
feature/quiz/src/main/java/com/teamwable/quiz/QuizMainViewModel.kt (1)

27-31: 시간 포맷 변경이 일관성 있게 적용되었습니다.

시간 표시 형식을 "%02d : %02d"로 변경하고 초기값도 "00 : 00"으로 맞춰서 일관성이 유지되고 있습니다. 시간 단위에 leading zero가 추가되고 콜론 양쪽에 공백이 포함된 변경사항이 QuizMainScreen과도 일치합니다.

feature/quiz/src/main/java/com/teamwable/quiz/start/QuizStartViewModel.kt (2)

3-4: SavedStateHandle 통합으로 상태 지속성이 개선되었습니다.

SavedStateHandle을 사용하여 퀴즈 시작 시간을 저장하도록 구현했습니다. 이는 앱이 백그라운드로 이동하거나 프로세스가 종료되었을 때 상태를 복원할 수 있게 해줍니다.

Also applies to: 22-22, 26-30


49-49: Need to verify how startTimeMillis is actually declared and initialized in the code:

불필요한 리뷰 코멘트 - 기기 재부팅 시나리오에 대한 잘못된 이해

리뷰 코멘트의 우려 사항은 SavedStateHandle이 기기 재부팅 후에도 데이터를 유지한다는 잘못된 가정에 기반하고 있습니다. SavedStateHandle의 저장된 상태는 작업 스택과 연결되어 있으며, 작업 스택이 사라지면 저장된 상태도 함께 사라집니다. 이는 앱 강제 종료, 최근 앱 메뉴에서 제거, 또는 기기 재부팅 시 발생합니다.

따라서 기기 재부팅 후 startTimeMillis는 초기값인 0L로 리셋되며, 현재의 if (startTimeMillis == 0L) 조건은 예상대로 작동합니다. 제시된 엣지 케이스는 실제로 발생하지 않습니다.

Likely an incorrect or invalid review comment.

feature/quiz/src/main/res/values/strings.xml (1)

5-6: 새로운 버튼 텍스트 리소스가 추가되었습니다.

퀴즈 메인 화면의 버튼 텍스트를 위한 string 리소스가 적절하게 추가되었습니다. 이는 디자인 시스템의 BoardRequestButton을 커스터마이징하는 데 사용됩니다.

feature/quiz/src/main/java/com/teamwable/quiz/QuizMainScreen.kt (3)

46-46: time 파라미터가 필수로 변경되었습니다.

time 파라미터에서 기본값을 제거하여 호출자가 명시적으로 시간 값을 전달하도록 변경했습니다. 이는 의도된 변경으로 보이며, QuizMainRoute에서 ViewModel의 remainingTime을 전달하도록 구현되어 있습니다.


109-110: BoardRequestButton에 텍스트 커스터마이징이 적용되었습니다.

디자인 시스템의 변경사항에 맞춰 textWhite와 textSky 파라미터를 전달하여 버튼 텍스트를 커스터마이징하고 있습니다. 새로 추가된 string 리소스를 활용하여 적절하게 구현되었습니다.


122-122: Preview가 업데이트된 시간 형식을 반영합니다.

Preview에서 명시적으로 "00 : 00" 형식(공백 포함)을 전달하여 변경된 시간 포맷과 일치하도록 업데이트되었습니다.

@sohyun127 sohyun127 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

@chanubc chanubc merged commit 194326e into develop Oct 29, 2025
2 checks passed
@chanubc chanubc deleted the hotfix/#197-qa-2 branch October 29, 2025 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐻 찬우 차은우 🚑️ [HOTFIX] 이슈나 QA에서 발생된 급하게 해결해야 될 문제

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HOTFIX] : 2차 qa 반영

2 participants