Skip to content

fix: 디자인 QA 반영#219

Merged
seoyoon513 merged 3 commits intodevelopfrom
BOOK-427-fix/#218
Nov 7, 2025
Merged

fix: 디자인 QA 반영#219
seoyoon513 merged 3 commits intodevelopfrom
BOOK-427-fix/#218

Conversation

@seoyoon513
Copy link
Copy Markdown
Contributor

@seoyoon513 seoyoon513 commented Nov 6, 2025

🔗 관련 이슈

📙 작업 설명

  • 책 썸네일에 누락된 border 추가 (도서 검색, 내 서재, 기록 상세)
  • 감정 씨앗 좌우 반전된 리소스 교체

🧪 테스트 내역

  • 주요 기능 정상 동작 확인
  • 브라우저/기기에서 동작 확인
  • 엣지 케이스 테스트 완료
  • 기존 기능 영향 없음

📸 스크린샷 또는 시연 영상

before after
image image
도서 검색 기록 상세 내 서재
Reed_도서검색 Reed_기록상세 Reed_내서재

Summary by CodeRabbit

  • 스타일

    • 상세, 라이브러리, 검색 화면의 책 표지 이미지에 일관된 테두리가 추가되어 시각적 구분과 정돈감이 개선되었습니다.
  • 리팩터

    • 원격 설정 기반 버전/업데이트 확인 로직이 내부적으로 안정화되어 업데이트 감지 및 오류 처리 신뢰성이 향상되었습니다.

@github-actions github-actions Bot added the 🐞 fix Something isn't working label Nov 6, 2025
@github-actions github-actions Bot requested a review from easyhooon November 6, 2025 08:07
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Nov 6, 2025

Walkthrough

네 개의 UI 컴포넌트 파일에서 책 커버 이미지에 1.dp 너비의 테두리를 추가합니다(색상: borderPrimary, 기존 라운드와 일치). 또한 원격 설정을 읽는 리포지토리 구현에서 suspendCancellableCoroutine을 제거하고 runSuspendCatching/await 기반으로 fetchAndActivate 호출 및 에러 처리를 통일했습니다.

Changes

Cohort / File(s) 변경 요약
도서 아이템 컴포넌트 (디테일 / 라이브러리 / 검색)
feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/BookItem.kt, feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/component/LibraryBookItem.kt, feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookItem.kt, feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/component/LibraryBookItem.kt
androidx.compose.foundation.border 임포트 추가 및 각 파일의 책 커버 이미지 Modifier 체인에 border(1.dp, ReedTheme.colors.borderPrimary, RoundedCornerShape/기존 radius) 적용(기존 clip 뒤에 배치). 레이아웃/클릭 동작/서명 불변.
원격 설정 리포지토리 구현 개선
core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt
suspendCancellableCoroutine 기반 수동 처리 제거. runSuspendCatching + remoteConfig.fetchAndActivate().await() 패턴으로 getLatestVersionshouldUpdate 로직 통일 및 예외 로깅 정리. 공개 서명 불변.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor UI
  participant Repo as DefaultRemoteConfigRepository
  participant RC as RemoteConfigSDK

  UI->>Repo: getLatestVersion() / shouldUpdate()
  Repo->>RC: fetchAndActivate().await()
  alt success
    RC-->>Repo: activated
    Repo-->>UI: Result.success(configValue)
  else failure
    RC-->>Repo: exception
    Repo->>Repo: Logger.e(exception)
    Repo-->>UI: Result.failure(exception)
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • UI 변경은 반복적이고 간단하지만 Compose Modifier 순서(clip vs border) 확인 필요.
  • 리포지토리 변경은 비동기/예외 처리 흐름이 바뀌었으므로 테스트/로깅 동작 점검 권장.
  • 집중 검토 파일:
    • DefaultRemoteConfigRepository.kt (await/runSuspendCatching, 예외 전파)
    • 변경된 Compose 파일들(테두리 적용 위치와 Shapes 일관성)

Poem

🐰 새 테두리로 빛나는 책 한 줄기,
둥근 모서리 위로 반짝이는 선.
코드 속에서 조용히 바뀐 장식,
토끼가 기뻐 뛰어올라 박수 한 번. 📚✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning PR의 대부분의 변경사항(4개 파일의 border 추가)은 이슈 범위 내이나, DefaultRemoteConfigRepository.kt의 변경사항은 연결된 이슈와 무관한 리팩토링입니다. DefaultRemoteConfigRepository.kt의 runSuspendCatching 리팩토링을 별도 PR로 분리하거나, 해당 변경사항이 이 PR의 범위에 포함되어야 하는 이유를 설명해주세요.
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.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 '디자인 QA 반영'으로 변경사항의 주요 목적인 책 썸네일에 border 추가와 씨앗 아이콘 교체를 포괄적으로 설명합니다.
Linked Issues check ✅ Passed PR 변경사항은 연결된 이슈 #218의 모든 코딩 요구사항을 충족합니다: 도서 검색, 내 서재, 기록 상세 화면의 책 썸네일에 border 추가 완료.
✨ 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 BOOK-427-fix/#218

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 198a605 and c9c1ccd.

📒 Files selected for processing (1)
  • core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: seoyoon513
Repo: YAPP-Github/Reed-Android PR: 46
File: feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/component/InfiniteLazyColumn.kt:83-95
Timestamp: 2025-07-14T00:46:03.843Z
Learning: seoyoon513과 팀은 한국어 주석을 선호하며, 한국어 주석을 영어로 번역하라는 제안을 하지 않아야 함
🧬 Code graph analysis (1)
core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt (2)
core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/RunSuspendCatching.kt (1)
  • runSuspendCatching (16-30)
core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/VersionUtils.kt (1)
  • isUpdateRequired (41-43)
⏰ 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). (2)
  • GitHub Check: Compose Stability Check
  • GitHub Check: ci-build
🔇 Additional comments (4)
core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt (4)

6-6: LGTM! 필요한 import가 올바르게 추가되었습니다.

새로운 구현에 필요한 runSuspendCatchingawait 확장 함수가 적절히 import되었습니다.

Also applies to: 10-10


16-23: 코드가 깔끔하게 리팩토링되었습니다.

runSuspendCatchingawait()를 사용한 구현이 기존 suspendCancellableCoroutine 방식보다 간결하고 가독성이 좋습니다. 에러 핸들링과 취소 처리도 적절합니다.


25-32: LGTM! 버전 비교 로직이 명확합니다.

isUpdateRequired 유틸리티를 활용하여 버전 비교 로직을 명확하게 구현했습니다. getLatestVersion과 일관된 에러 핸들링 패턴을 유지하고 있습니다.


16-32: PR 범위와의 불일치를 확인해주세요.

이 파일의 변경사항(RemoteConfig 리포지토리 리팩토링)은 PR의 주요 목표인 "디자인 QA 반영(책 썸네일 border 추가, 씨앗 아이콘 교체)"과 직접적인 연관이 없어 보입니다. 기술적으로는 올바른 리팩토링이지만, 디자인 변경과 데이터 레이어 리팩토링을 별도 PR로 분리하는 것이 변경 이력 관리에 더 명확할 수 있습니다.


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.

@easyhooon
Copy link
Copy Markdown
Contributor

카톡으로 말씀드린 suspendCancellableCoroutine -> await 전환 커밋만 추가했습니다.
LGTM~ (왜 좌우반전이 되었던거지)

@seoyoon513
Copy link
Copy Markdown
Contributor Author

(왜 좌우반전이 되었던거지)

정말 최대 미스터리입니다~ 이상 없으면 approve 부탁드려요!

@seoyoon513 seoyoon513 merged commit 2c3b9e7 into develop Nov 7, 2025
4 checks passed
@seoyoon513 seoyoon513 deleted the BOOK-427-fix/#218 branch November 7, 2025 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐞 fix Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOOK-427/fix] 디자인 QA 반영

2 participants