Skip to content

Conversation

@doyeonk429
Copy link
Member

@doyeonk429 doyeonk429 commented Oct 18, 2025

🔗 관련 이슈

📘 작업 유형

  • ✨ Feature (기능 추가)
  • 🐞 Bugfix (버그 수정)
  • 🔧 Refactor (코드 리팩토링)
  • ⚙️ Chore (환경 설정)
  • 📝 Docs (문서 작성 및 수정)
  • ✅ Test (기능 테스트)
  • 🎨 style (코드 스타일 수정)

📙 작업 내역

  • 문장 셀 디자인 수정 및 애니메이션 적용
  • 뱃지뷰 수정
  • 버튼 활성화 상태 검증 로직 수정

🧪 테스트 내역

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

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

문장 선택 UI

ScreenRecording_10-18-2025.17-15-34_1.mp4

감상평 작성 UI

IMG_3289

✅ PR 체크리스트

  • 커밋 메시지가 명확합니다
  • PR 제목이 컨벤션에 맞습니다
  • 관련 이슈 번호를 작성했습니다
  • 기능이 정상적으로 작동합니다
  • 불필요한 코드를 제거했습니다

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

  • API가 아직 수정이 안되서 기록 등록 성공은 안됩니다!

Summary by CodeRabbit

릴리스 노트

  • 새 기능

    • 메모 작성 화면에 새로운 배지 UI 컴포넌트 추가
  • 개선 사항

    • 메모 작성 과정에서 페이지 네비게이션 로직 개선
    • 문장 선택 시 애니메이션 및 글씨체 스타일 업데이트
    • 감사 문장 입력 필드 처리 방식 개선

@coderabbitai
Copy link

coderabbitai bot commented Oct 18, 2025

Walkthrough

OCR 문장 선택 및 감상평 작성 UI 수정. BadgeView 컴포넌트 신규 추가, 감상평 입력 필드에 "선택" 배지 추가, 문장 선택 시 글꼴 가중치 애니메이션 적용, 감상평을 선택 항목으로 변경하여 다음 버튼 UX 개선.

Changes

Cohort / File(s) 변경 요약
신규 UI 컴포넌트
src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift
중앙 정렬된 BKLabel을 포함하는 새로운 UIView 서브클래스. 공개 초기화 메서드 init(title:)과 title 프로퍼티 추가. SnapKit을 사용한 레이아웃 제약 적용.
감상평 작성 UI 수정
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift
SentenceAppreciationForm.appreciation을 String에서 String?로 변경. titleRowStack 스택뷰 추가하여 titleLabel과 optionBadge 통합. 빈 입력값 허용하도록 validation 로직 제거.
문장 선택 UI 및 버튼 UX
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift, src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift
SentenceListCell: 선택 상태 변경 시 글꼴 가중치 애니메이션 추가. NoteView: 2페이지에서 다음 버튼 무조건 활성화.
기타
src/Projects/BKPresentation/Sources/MainFlow/Note/View/TooltipView.swift
주석 추가만 변경.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

일관된 패턴의 UI 컴포넌트 추가와 기존 뷰 수정이 대부분이며, 각 변경사항이 독립적이고 로직 밀도가 낮습니다. BadgeView는 단순한 새 컴포넌트이고, 나머지 수정사항들은 명확한 의도의 작은 변경입니다.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.11% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed PR 제목 "feat: OCR 문장 선택 UI/감상평 작성 UI 수정"은 변경 사항의 주요 내용을 명확하게 반영하고 있습니다. 제목은 SentenceListCell의 UI 애니메이션 수정, BadgeView 신규 컴포넌트 추가, SentenceAppreciationView의 칩 UI 추가, 그리고 NoteView의 버튼 상태 로직 수정 등 모든 핵심 변경 사항을 간결하게 요약하고 있습니다. 제목은 구체적이고 명확하며 팀원들이 변경 내용을 빠르게 파악할 수 있는 수준의 정보를 제공합니다.
Linked Issues Check ✅ Passed PR은 연결된 이슈 #230의 모든 주요 목표를 충족합니다. OCR 문장 선택 UI 수정 [#230]은 SentenceListCell.swift에서 폰트 가중치 변경 및 애니메이션 적용으로 구현되었습니다. 감상평 작성 칩 UI 추가 [#230]는 BadgeView 신규 컴포넌트 생성 및 SentenceAppreciationView에 optionBadge 통합으로 실현되었습니다. 감상평 작성 버튼 UX 수정 [#230]은 NoteView의 updateNextButtonEnabled 메서드에서 페이지 2일 때 버튼을 항상 활성화하는 로직으로 처리되었습니다. 모든 코딩 관련 요구사항이 변경 사항에 반영되어 있습니다.
Out of Scope Changes Check ✅ Passed 모든 변경 사항이 링크된 이슈 #230의 목표 범위 내에 있습니다. BadgeView.swift의 신규 컴포넌트, SentenceAppreciationView.swift의 UI 개선, SentenceListCell.swift의 선택 상태 처리 변경, NoteView.swift의 버튼 활성화 로직 수정은 모두 명시된 세 가지 목표(문장 선택 UI 수정, 칩 UI 추가, 버튼 UX 수정)에 직접 기여합니다. TooltipView.swift의 주석 추가도 범위 내 변경입니다. 범위를 벗어난 불필요한 변경 사항은 식별되지 않았습니다.
✨ 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-358-feature/#230

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.

Copy link

@coderabbitai coderabbitai bot left a comment

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 (2)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/TooltipView.swift (1)

7-7: 기술 부채 메모 확인.

2차 작업 시 BKDesign 컴포넌트로 추출 예정이라는 메모가 명확합니다. 현재 PR에는 영향이 없으며, 향후 디자인 시스템 통합 시 유용한 참고사항입니다.

이 작업을 추적하기 위한 이슈를 생성하시겠습니까?

src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (1)

163-163: 디자인 시스템 상수 사용을 고려해 보세요.

titleRowStackSpacing에 매직 넘버 10을 사용하고 있습니다. 가능하다면 BKSpacing의 기존 상수를 활용하면 디자인 일관성을 높일 수 있습니다.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0706a96 and 1a1c975.

📒 Files selected for processing (5)
  • src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift (1 hunks)
  • src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift (1 hunks)
  • src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (6 hunks)
  • src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift (1 hunks)
  • src/Projects/BKPresentation/Sources/MainFlow/Note/View/TooltipView.swift (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (3)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift (3)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (1)
  • registrationForm (146-152)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/EmotionRegistrationView.swift (1)
  • registrationForm (113-116)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceRegistrationView.swift (1)
  • registrationForm (131-146)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift (1)
src/Projects/BKDesign/Sources/Extensions/UIColor+.swift (3)
  • bkContentColor (52-63)
  • bkBackgroundColor (38-50)
  • bkBorderColor (65-76)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift (1)
src/Projects/BKDesign/Sources/Extensions/UIColor+.swift (2)
  • bkContentColor (52-63)
  • bkBackgroundColor (38-50)
⏰ 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: build
🔇 Additional comments (6)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift (1)

182-187: 감상평을 선택 항목으로 변경한 로직이 올바르게 구현되었습니다.

페이지 2(감상평 작성)에서 버튼을 무조건 활성화하는 로직이 "선택" 배지 추가 및 SentenceAppreciationView.registrationForm()의 변경사항과 일관성 있게 구현되었습니다.

src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift (2)

57-59: 중첩 애니메이션 구조를 확인해 주세요.

configure 메서드에서 updateSelectionState를 애니메이션 블록으로 감싸고 있는데, updateSelectionState 내부(74-76줄)에도 별도의 애니메이션 블록이 있습니다.

  • 외부 애니메이션: updateSelectionState 호출 자체를 애니메이션
  • 내부 애니메이션: layoutIfNeeded()만 애니메이션

폰트 변경은 암시적으로 애니메이션되지 않을 수 있으므로, 의도한 대로 동작하는지 확인해 주세요. 필요하다면 애니메이션 구조를 단순화하는 것을 고려해 보세요.


64-64: 선택 상태를 폰트 굵기로 표현하는 개선이 잘 구현되었습니다.

색상 대신 폰트 굵기(medium/regular)로 선택 상태를 표현하여 UI가 더 일관되고 명확해졌습니다.

Also applies to: 69-69

src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift (1)

7-46: BadgeView 컴포넌트가 깔끔하게 구현되었습니다.

명확한 책임을 가진 재사용 가능한 UI 컴포넌트로 잘 설계되었습니다. Public API(init(title:), title 프로퍼티)도 직관적이며, SentenceAppreciationView에서 의도한 대로 활용되고 있습니다.

src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (2)

9-9: 감상평을 선택 항목으로 변경한 구현이 올바르지만, 백엔드 호환성을 확인해 주세요.

appreciationString?으로 변경되었고 registrationForm()이 빈 문자열도 허용하도록 수정되었습니다. 이는 "선택" 배지와 일관성이 있습니다.

그러나 현재 구현은 빈 문자열("")을 전달하는데, 백엔드 API가 선택 항목에 대해 nil을 기대하는지 빈 문자열을 기대하는지 확인이 필요합니다. PR 설명에서 "API가 아직 수정되지 않았다"고 언급하신 만큼, API 업데이트 시 이 부분의 호환성을 검증해 주세요.

Also applies to: 146-152


20-38: 배지와 타이틀 레이아웃이 잘 구성되었습니다.

optionBadgetitleRowStack을 추가하여 "문장에 대한 감상을 남겨주세요" 타이틀과 "선택" 배지를 수평으로 배치한 구조가 깔끔하고 의도가 명확합니다.

Also applies to: 80-81

@doyeonk429 doyeonk429 merged commit 86b381a into develop Oct 25, 2025
4 of 5 checks passed
@doyeonk429 doyeonk429 deleted the BOOK-358-feature/#230 branch October 25, 2025 09:54
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-358/feat] OCR 문장 선택 UI 및 감상평 작성 UI 수정

3 participants