Skip to content

feat: 홈 컬렉션 섹션 및 전체 컬렉션뷰 구현 - #978

Open
Sadturtleman wants to merge 5 commits into
developfrom
feat/977
Open

Sadturtleman wants to merge 5 commits into
developfrom
feat/977

Conversation

@Sadturtleman

@Sadturtleman Sadturtleman commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

홈에 공개 컬렉션 섹션(컬렉션 모음.zip)을 추가하고, 모든 공개 컬렉션을 볼 수 있는 전체 컬렉션뷰를 구현했습니다. 두 화면 모두 GET /collections를 사용하며, 비공개 컬렉션 제외·최신순 정렬·차단 사용자 제외는 서버에서 처리합니다.

홈 > 컬렉션 섹션

  • 인기 피드(추천글) 아래, '이 웹소설은 어때요?' 위에 섹션을 추가했습니다.
  • 최신순으로 최대 10개를 가로 스크롤로 보여줍니다.
  • 카드는 제목, 설명 · 작품 수, 표지, 작성자 프로필로 구성됩니다. 표지는 최대 4개이며, 부족하면 빈 표지로 채웁니다.
  • 섹션 제목을 누르면 전체 컬렉션뷰로, 카드를 누르면 컬렉션 상세로 이동합니다.
  • 화면에 돌아올 때마다(ON_RESUME) 다시 불러옵니다. 보여줄 컬렉션이 없거나 첫 조회에 실패하면 섹션을 숨기고, 갱신에 실패하면 이전 목록을 유지합니다.

전체 컬렉션뷰

  • 공개 컬렉션을 최신순으로 커서 기반 무한 스크롤로 보여줍니다.
  • 카드 표지는 최대 5개이며, 부족하면 빈 표지로 채웁니다.
  • 당겨서 새로고침 시 햅틱(CONFIRM)을 주고 첫 페이지부터 다시 조회합니다.
  • 프로필 영역을 포함해 카드 어디를 눌러도 컬렉션 상세로 이동합니다.

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

홈 > 컬렉션 섹션 전체 컬렉션뷰
home list

홈 섹션 가로 스크롤 → 전체 컬렉션뷰 진입 → 무한 스크롤 → 당겨서 새로고침 → 상세 진입·복귀

flow.mp4

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

  • 홈 섹션이 비었거나 조회에 실패하면 섹션을 숨기도록 했습니다.

Summary by CodeRabbit

  • 새로운 기능
    • 홈 화면에 공개 컬렉션 미리보기 영역이 추가되었습니다. 컬렉션을 누르면 상세 화면으로, 목록 버튼을 누르면 공개 컬렉션 목록으로 이동합니다.
    • 공개 컬렉션 목록에서 컬렉션 이름, 소유자와 최근 작품을 확인하고, 항목을 눌러 상세 화면으로 이동할 수 있습니다.
    • 공개 컬렉션 목록을 새로고침하고 추가로 불러올 수 있습니다. 오류가 발생하면 재시도할 수 있습니다.
    • 컬렉션 카드 전체를 눌러 이동할 수 있으며, 카드에서 표지와 소유자 정보를 확인할 수 있습니다.

Sadturtleman and others added 5 commits October 14, 2026 13:33
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Sadturtleman Sadturtleman self-assigned this Oct 14, 2026
@github-actions
github-actions Bot requested a review from devfeijoa October 14, 2026 04:35
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b04784c7-5899-44f3-9523-23a2d937a5c2
📥 Commits

Reviewing files that changed from the base of the PR and between 412f7ad and 7a471dd.

📒 Files selected for processing: 19
  • app/src/main/java/com/into/websoso/ui/collection/CollectionActivity.kt
  • app/src/main/java/com/into/websoso/ui/main/home/HomeFragment.kt
  • app/src/main/res/layout/fragment_home.xml
  • core/resource/src/main/res/values/strings.xml
  • data/collection/build.gradle.kts
  • data/collection/src/main/java/com/into/websoso/data/collection/CollectionApi.kt
  • data/collection/src/main/java/com/into/websoso/data/collection/CollectionDto.kt
  • data/collection/src/main/java/com/into/websoso/data/collection/CollectionPagingSource.kt
  • data/collection/src/main/java/com/into/websoso/data/collection/DefaultCollectionRepository.kt
  • data/collection/src/test/java/com/into/websoso/data/collection/CollectionPagingSourceTest.kt
  • data/collection/src/test/java/com/into/websoso/data/collection/PublicCollectionDtoTest.kt
  • domain/collection/src/main/java/com/into/websoso/domain/collection/CollectionRepository.kt
  • domain/collection/src/main/java/com/into/websoso/domain/collection/model/Collection.kt
  • feature/collection/src/main/java/com/into/websoso/feature/collection/CollectionNavHost.kt
  • feature/collection/src/main/java/com/into/websoso/feature/collection/HomeCollectionSection.kt
  • feature/collection/src/main/java/com/into/websoso/feature/collection/HomeCollectionViewModel.kt
  • feature/collection/src/main/java/com/into/websoso/feature/collection/PublicCollectionScreen.kt
  • feature/collection/src/main/java/com/into/websoso/feature/collection/PublicCollectionViewModel.kt
  • feature/collection/src/main/java/com/into/websoso/feature/collection/component/CollectionCard.kt

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

공개 컬렉션 API와 도메인 모델을 추가했습니다. 저장소에서 페이징 목록과 최대 10개 미리보기를 제공합니다. 공개 목록 화면과 홈 컬렉션 섹션을 구현하고, 컬렉션 화면의 시작 경로 및 카드 탐색을 연결했습니다.

Changes

공개 컬렉션

Layer / File(s) Summary
데이터 계약과 페이징
domain/collection/..., data/collection/..., data/collection/src/test/...
공개 컬렉션 도메인 모델과 API 응답 DTO를 추가했습니다. 커서 페이지와 페이징 소스를 일반화하고, 저장소에 공개 목록 및 10개 미리보기 조회를 추가했습니다. DTO 변환과 페이징 동작을 테스트합니다.
공개 목록과 카드 표시
feature/collection/.../PublicCollectionScreen.kt, feature/collection/.../PublicCollectionViewModel.kt, feature/collection/.../component/CollectionCard.kt, core/resource/.../strings.xml
Paging 목록, 새로고침, 추가 로딩과 재시도 UI를 구현했습니다. 공개 컬렉션 카드에는 소유자 정보를 표시합니다.
홈 섹션과 화면 탐색
feature/collection/.../HomeCollectionSection.kt, feature/collection/.../HomeCollectionViewModel.kt, feature/collection/.../component/CollectionCard.kt, app/src/main/java/com/into/websoso/ui/main/home/HomeFragment.kt, app/src/main/res/layout/fragment_home.xml, app/src/main/java/com/into/websoso/ui/collection/CollectionActivity.kt, feature/collection/.../CollectionNavHost.kt
홈에 가로 스크롤 미리보기 섹션을 연결했습니다. 목록 클릭은 공개 목록 화면을 열고, 카드 클릭은 해당 컬렉션 화면을 엽니다. Intent extra로 공개 목록 시작 여부를 전달하며, 컬렉션 ID가 있으면 해당 상세 화면을 우선 표시합니다.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant CollectionApi
  participant DefaultCollectionRepository
  participant PublicCollectionViewModel
  participant PublicCollectionScreen
  PublicCollectionScreen->>PublicCollectionViewModel: 컬렉션 목록 구독
  PublicCollectionViewModel->>DefaultCollectionRepository: 공개 컬렉션 페이징 요청
  DefaultCollectionRepository->>CollectionApi: 커서와 페이지 크기로 조회
  CollectionApi-->>DefaultCollectionRepository: 공개 컬렉션 페이지 응답
  DefaultCollectionRepository-->>PublicCollectionViewModel: 페이징 데이터 반환
  PublicCollectionViewModel-->>PublicCollectionScreen: 캐시된 목록 제공
Loading

Suggested reviewers: devfeijoa

Merge Risk: ⚪ Minimal · up to 7a471

The public collection views have no confirmed merge-blocking issue; proceed with normal checks.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 6.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 50 functions across 17 files. (2 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Linked Issues check Passed 직접 연결된 활성 이슈 #977의 코딩 요구사항을 충족합니다. HomeCollectionSection은 공개 컬렉션을 최대 10개까지 가로 목록으로 표시하고, CollectionCard의 HomeCollectionCard는 표지 최대 4개와 제목·설명·작품 수·작성자 정보를 표시합니다. PublicCollectionScreen과 `Collec…
Out of Scope Changes check Passed 변경 사항은 이슈 #977의 공개 컬렉션 홈 섹션과 전체 목록 구현에 연결됩니다. PublicCollection 모델, 공개 목록 API·저장소·페이징 로직, 공통 CollectionCard 분리, 화면 라우팅, 단위 테스트는 해당 기능 구현에 필요한 지원 변경입니다. 기존 카드 재사용을 위한 리팩터링도 기능 범위와 직접 연결됩니다. 좋아요 수를 추…
Title check Passed 제목은 홈 컬렉션 섹션과 전체 컬렉션뷰 구현이라는 PR의 주요 변경 사항을 정확히 요약합니다.
Description check Passed PR 설명은 이슈, 작업 내용, 스크린샷, 리뷰어 참고 사항을 모두 포함합니다. 홈 섹션과 전체 컬렉션뷰의 동작 및 검증 범위도 구체적으로 설명합니다.
Full details: Docstring Coverage

Explanation

Docstring coverage is 6.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 50 functions across 17 files. (2 skipped: 2 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 홈 컬렉션 섹션 및 전체 컬렉션뷰 구현

1 participant