Skip to content

Conversation

@easyhooon
Copy link
Contributor

@easyhooon easyhooon commented Jan 15, 2026

🔗 관련 이슈

📙 작업 설명

  • 도서 상세 API 변경 사항 반영 및 V2 suffix 제거
  • 대표 감정을 산출하는 로직 및 컴포넌트 제거
  • Model 모듈내 model들 @Stable -> @Immutable로 어노테이션 적용 변경

🧪 테스트 내역 (선택)

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

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

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

  • 독서 기록 목록 조회 V2 API내에 독서 기록 DTO의 도서 정보가 누락되어 내려오는 문제가 있어 현재 기록 수정 화면등에 진입하면 책 정보가 제대로 기입되지 않는 문제가 있습니다.(수정 필요)
  • 서버에서 내려오는 감정관련 DTO가 v1/v2 의 간극때문에 타입이 나뉘어있는데 앱내 Domain Model에서는 EmotionCode를 통해 동일한 모델로 처리할 수 있도록 했습니다.(displayName 추가)
  • 대표 감정을 산출하는 로직이 서버로 옮겨짐에 따라, 네이티브에서 대표 감정을 산출하는 로직 및 컴포넌트 제거하였습니다.
  • Domain Model들 내부 프로퍼티들이 수정될 가능성이 없다고 판단되어 @Stable -> @Immutable로 변경했습니다. 이전에 개발시엔 이 두 어노테이션의 차이를 잘 몰라서, @Immutable사용이 조심스러워 사용하지 않았으나, 이제는 사용해도 된다고 판단하였습니다.

Summary by CodeRabbit

릴리스 노트

  • Bug Fixes

    • 페이지 번호가 없는 독서 기록에 대한 처리 개선
  • Refactor

    • 감정 표시 방식을 더욱 구조화된 형태로 개선
    • 독서 기록 데이터 모델 통합 및 최적화
    • API 엔드포인트 버전 업데이트

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

ReadingRecordModelV2 모델을 ReadingRecordModel로 통합하고 V2 접미사를 제거합니다. 감정 데이터 구조를 emotionTags 리스트에서 primaryEmotiondetailEmotions 구조로 변경하며, pageNumber를 nullable로 수정합니다.

Changes

Cohort / File(s) 변경 사항
Core API Layer
core/data/api/.../RecordRepository.kt
ReadingRecordModelV2ReadingRecordModel 타입으로 통합; 반환 타입 변경 (postRecord, getRecordDetail, editRecord)
Core Data Mapper
core/data/impl/.../ResponseToModel.kt
ReadingRecordV2.toModel() 함수 제거; ReadingRecord.toModel()primaryEmotiondetailEmotions 필드 추가
Core Model Definition
core/model/.../ReadingRecordsModel.kt
ReadingRecordModelV2ReadingRecordModel 클래스명 변경; pageNumber (Int → Int?), emotionTags 제거, primaryEmotion/detailEmotions 추가; 새 PrimaryEmotionModel 데이터 클래스 추가
Core Network Response
core/network/.../ReadingRecordsResponse.kt
ReadingRecord 제거, ReadingRecordV2 신규 도입; emotionTagsprimaryEmotion/detailEmotions 변경; 새 PrimaryEmotion 클래스 추가
Core Network Service
core/network/.../ReedService.kt
ReadingRecordV2ReadingRecord 타입 변경; 반환 타입 갱신 (postRecord, getRecordDetail, editRecord); getReadingRecords 엔드포인트 경로 v1 → v2 업데이트
Feature Detail Presenters & UI
feature/detail/.../BookDetailPresenter.kt, BookDetailUi.kt, RecordItem.kt, RecordDetailPresenter.kt, RecordDetailUi.kt, RecordDetailUiState.kt
ReadingRecordModelV2ReadingRecordModel 타입 통합; emotionTagsprimaryEmotion 필드 변경; pageNumber nullable 처리 (RecordItem에서 null 체크 로직 추가); PrimaryEmotionModel 임포트 추가

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

✨ feat

Suggested reviewers

  • seoyoon513

Poem

🐰 Whiskers twitching, models align,
V2 suffix removed with a sign ✨
Emotions now bloom in structured grace,
Page numbers float in nullable space,
The ancient and new now embrace!

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목은 도서 상세 API v1에서 v2로의 마이그레이션과 V2 suffix 제거를 명확하게 요약하며, 실제 변경 사항과 일치합니다.
Linked Issues check ✅ Passed PR은 #250의 모든 코딩 요구사항을 충족합니다: API를 v2로 마이그레이션하고, 모든 DTO와 Model에서 V2 suffix를 제거했습니다.
Out of Scope Changes check ✅ Passed 모든 변경사항은 #250의 요구사항 범위 내입니다: API 마이그레이션, V2 suffix 제거, pageNumber nullable 처리, emotionTags에서 primaryEmotion으로 변경 등 모두 관련 변경입니다.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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 easyhooon marked this pull request as draft January 16, 2026 06:09
대표 감정을 representativeEmotion으로 내려주는 관계로, 네이티브 코드내에서 대표 감정을 선출하는 로직 제거
각 Emotion 네이밍 warmth, joy, sadness, insight, other로 통일(리소스 네이밍 수정)
사용하지 않는 dto 클래스 제거
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-490/feat] 도서 상세 API 변경 사항 반영 및 V2 suffix 제거

2 participants