Skip to content

Conversation

@easyhooon
Copy link
Contributor

@easyhooon easyhooon commented Oct 28, 2025

🔗 관련 이슈

📙 작업 설명

  • 기록 플로우내에 감상평을 입력하지 않아도 완료되도록 DTO 내 review 프로퍼티 nullable 로 변경
  • 기록 수정시 감상평 빈값에 대한 validation 제거
  • detekt-config 파일 내에 TooGenericExceptionCaught 린트 검사 비활성화
    • try catch 구문을 쓰면 최종적으로 Exception을 catch 하는 방식이 안전하기에(앱이 죽지 않는게 가장 중요하다. vs 코드의 버그를 숨겨버림(디버깅이 어려워짐) 중에 어떤 것을 더 중요시하는지 그 관점에 따라 다를수있음) 필히 @Suppress 어노테이션을 달아줘야하는 문제가 존재

🧪 테스트 내역 (선택)

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

📸 스크린샷 또는 시연 영상 (선택)

default.mp4

💬 추가 설명 or 리뷰 포인트 (선택)

  • 피그마에 문의 두개 남겨놨는데 이것들 답변받고 반영하겠습니다.
    1. 기록 상세화면내 감상평이 비어있을 경우 케이스 고려(그대로 유지해도 괜찮을듯)
      -> 그대로 유지
    2. 감상평 기록화면 내 버튼(다음이라는 네이밍은 좀 부적절한거같음)
      -> 감상평 입력하기 진입시 버튼 텍스트 "기록 완료"로 변경

Summary by CodeRabbit

릴리스 노트

  • 개선 사항

    • 독서 기록 저장 시 감상 필드를 선택 사항으로 변경하여 사용자가 더 유연하게 기록 작성 가능
    • 기록 작성 단계의 버튼 레이블 텍스트 개선으로 사용자 경험 향상
  • 버그 수정

    • 내부 예외 처리 안정성 강화

@coderabbitai
Copy link

coderabbitai bot commented Oct 28, 2025

Walkthrough

감상평(review) 필드를 nullable로 전환하고, 매퍼에서 null 병합을 추가했으며 다수의 파일에서 @Suppress("TooGenericExceptionCaught") 주석을 제거하고 Detekt 설정을 조정하고, 편집 화면의 저장 버튼 검증 로직과 일부 UI 문자열을 업데이트했습니다.

Changes

Cohort / File(s) 변경 요약
경고 억제 주석 제거
core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt, core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt, core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/RunSuspendCatching.kt, core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultBookRecentSearchDataSource.kt, core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt, core/network/src/main/kotlin/com/ninecraft/booket/core/network/TokenAuthenticator.kt, feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt
@Suppress("TooGenericExceptionCaught") 주석 제거 (try/catch 로직은 그대로)
응답 DTO nullable 변경
core/network/src/main/kotlin/com/ninecraft/booket/core/network/response/ReadingRecordsResponse.kt, core/network/src/main/kotlin/com/ninecraft/booket/core/network/response/RecordDetailResponse.kt, core/network/src/main/kotlin/com/ninecraft/booket/core/network/response/RecordRegisterResponse.kt
review: Stringreview: String?로 변경 (nullable 허용)
응답→모델 매퍼 업데이트
core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/mapper/ResponseToModel.kt
review 값을 review ?: ""로 널 병합하여 빈 문자열로 보정
Detekt 설정 변경
detekt-config.yml
TooGenericExceptionCaught 규칙 비활성화 및 네이밍 규칙(함수/변수/패키지) 일부 설정 추가
UI / 흐름 변경 (문구/검증)
feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt, feature/record/src/main/kotlin/.../EmotionStep.kt, feature/record/src/main/kotlin/.../ImpressionStep.kt, feature/record/src/main/kotlin/.../QuoteStep.kt, feature/record/src/main/res/values/strings.xml
저장 버튼의 감상평 비어있음 검증 제거; 버튼 텍스트 리소스 일부 이름 변경 및 문자열 추가/삭제 (record_next_buttonrecord_next_button_text, record_finish_button_text 추가)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • 집중 검토 지점:
    • 네트워크 DTO의 review nullable 변경이 직렬화/역직렬화 및 API 호환성에 미치는 영향
    • 매퍼의 review ?: "" 처리가 의도한 사용자 경험(빈 문자열 대체)과 일치하는지
    • 여러 파일에서 suppression 주석 제거로 인해 Detekt/컴파일 경고가 새로 발생할 가능성
    • 저장 버튼 검증 변경이 에지케이스(빈 감상평 의도치 않은 저장 등)에 미치는 영향

🐰 감상평은 이제 선택이요,
조용히 사라진 경고의 외침,
비어도 괜찮은 기록의 빈 칸에,
한 줄의 자유를 꾹 눌러 넣네. 📚✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning 연결된 이슈 #202의 요구사항에 명시되지 않은 범위 외 변경사항들이 포함되어 있습니다. 여러 파일(Context.kt, HandleException.kt, RunSuspendCatching.kt, DefaultBookRecentSearchDataSource.kt, DefaultLibraryRecentSearchDataSource.kt, TokenAuthenticator.kt, BookDetailPresenter.kt)에서 @Suppress("TooGenericExceptionCaught") 어노테이션을 제거하고, detekt-config.yml에서 TooGenericExceptionCaught 린트 규칙을 비활성화하는 변경사항들이 있습니다. 이러한 린트 관련 변경사항들은 PR 설명에는 명시되어 있으나 이슈 요구사항에는 포함되지 않으며, 핵심 기능 목표(감상평 선택 옵션화)와 무관한 코드 정리 작업입니다. 이슈 #202의 요구사항과 직접 관련된 핵심 변경사항(review nullable 처리, validation 제거)에 집중하기 위해, 린트 규칙 변경 및 @Suppress 어노테이션 제거는 별도의 독립적인 PR로 분리하거나 현재 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
Title Check ✅ Passed PR 제목 "feat: 기록 플로우 감상평 기록 선택으로 변경"은 PR의 주요 변경사항을 명확하게 설명합니다. 변경 사항의 핵심은 리뷰/감상평 필드를 nullable로 변경하여 기록 플로우 완료 시 감상평 입력을 선택 사항으로 만드는 것이며, 제목은 이 주요 목표를 정확하게 반영합니다. 제목은 간결하고 명확하며, 팀원이 히스토리를 스캔할 때 주요 변경사항을 쉽게 이해할 수 있습니다.
Linked Issues Check ✅ Passed 이슈 #202의 요구사항 두 가지가 모두 충족되었습니다. 첫째, 감상평을 선택 옵션으로 변경하기 위해 RecordRegisterResponse, ReadingRecord, RecordDetailResponse, ReadingRecordsResponse의 review 필드를 nullable로 변경했으며, ResponseToModel 매퍼들에서 nullable 값을 빈 문자열로 합치고 있습니다. 둘째, RecordEditPresenter에서 Save 버튼 활성화 조건에서 recordImpressionState.text의 필수 요구사항을 제거하여 감상평 빈값에 대한 validation을 제거했습니다. 또한 PR 설명에 명시된 대로 UI 버튼 텍스트 변경도 포함되어 있습니다.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ 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-382-feature/#202

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
Contributor Author

@seoyoon513 변경사항 적용완료 했슴당

active: false

exceptions:
TooGenericExceptionCaught:
Copy link
Contributor

Choose a reason for hiding this comment

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

속이 다 시원하네요

Copy link
Contributor

@seoyoon513 seoyoon513 left a comment

Choose a reason for hiding this comment

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

LGTM

@easyhooon easyhooon merged commit 6914f44 into develop Oct 28, 2025
4 checks passed
@easyhooon easyhooon deleted the BOOK-382-feature/#202 branch October 28, 2025 15:18
@doyeonk429
Copy link
Member

doyeonk429 commented Oct 28, 2025

@easyhooon @seoyoon513 첨부된 영상의 감상평 박스 하단 여백 레이아웃이 디자인 가이드랑 좀 다른 부분이 있는 것 같은데 체크 가능하십니까?? (제가 안드 단말이 없어서... 😢 )

iOS에서도 UI 레이아웃 조정 작업 추가로 진행했습니다. iOS_PR

@easyhooon
Copy link
Contributor Author

@easyhooon @seoyoon513 첨부된 영상의 감상평 박스 하단 여백 레이아웃이 디자인 가이드랑 좀 다른 부분이 있는 것 같은데 체크 가능하십니까?? (제가 안드 단말이 없어서... 😢 )

iOS에서도 UI 레이아웃 조정 작업 추가로 진행했습니다. iOS_PR

DTO를 도메인 모델로 변환하면서 null이면 빈값으로 치환하고 있는데, 이거 때매 라인 1줄을 차지해서 밑에 공간이 좀 더 생기는거 같슴둥

QA 하면서 감상평 빈 값일때 피그마보고 패딩 조절하면 될거같아여

@doyeonk33
Copy link

@easyhooon @seoyoon513 첨부된 영상의 감상평 박스 하단 여백 레이아웃이 디자인 가이드랑 좀 다른 부분이 있는 것 같은데 체크 가능하십니까?? (제가 안드 단말이 없어서... 😢 )
iOS에서도 UI 레이아웃 조정 작업 추가로 진행했습니다. iOS_PR

DTO를 도메인 모델로 변환하면서 null이면 빈값으로 치환하고 있는데, 이거 때매 라인 1줄을 차지해서 밑에 공간이 좀 더 생기는거 같슴둥

QA 하면서 감상평 빈 값일때 피그마보고 패딩 조절하면 될거같아여

일단 현재 피그마 가이드에서는 그냥 저 "캐릭터-감정-등록날짜"의 가로 블록 기준으로 상하 16px이라서 저도 요대로 맞춰두긴 했습니다. QA 가서 처리하시죠! 굿굿 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOOK-382/feat] 기록 플로우 감상평 기록 선택으로 변경

5 participants