Repository navigation
Conversation
작성자(owner)를 함께 보여줘야 해서 CollectionCard에 얹지 않고 PublicCollectionCard를 따로 둔다. 서버(GET /collections)가 전체 개수를 주지 않아 다른 목록과 달리 커서 페이지만 돌려준다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GET /collections는 비로그인도 조회할 수 있고 토큰이 있으면 차단 작성자를 빼므로 usesTokenIfAvailable로 둔다. 응답에 collectionsCount·isPublic·대표 작품이 없고 owner가 있어 CollectionsResponse를 재사용하지 않고 DTO를 분리했다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
홈 컬렉션 섹션(4칸)이 컬렉션 목록(5칸)과 같은 표지 겹침 스택을 써야 해서 슬롯 수를 인자로 받게 옮겼다. WSSComponent는 BaseDomain까지만 알아 CollectionNovel 대신 표지 URL 배열을 받는다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
전체 컬렉션뷰 카드가 컬렉션 목록 카드와 같은 제목·"설명 · 작품 N" 헤더를 쓴다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
모든 사용자의 공개 컬렉션을 최신순 무한 스크롤로 보여주고, 당겨서 새로고침에 햅틱을 건다. 실패는 첫 페이지·더보기·새로고침 모두 NetworkErrorView로 표현한다(Feature 로드 실패 표현 계약). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
공개 컬렉션 첫 페이지(size 10)를 가로 스크롤 카드로 보여주고, 0건이면 제목까지 숨긴다. 배지와 같은 부수 콘텐츠라 실패해도 홈을 실패 뷰로 덮지 않고 로그만 남긴다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
표지 크기를 74×108로 고정한 채 간격만 역산해, 카드가 넓은 기기(17 Pro Max 5칸)에서 간격이 양수가 돼 표지가 떨어졌다. Figma 겹침 비율(58/74)을 고정하고 표지 크기를 카드 폭에 비례시키는 Layout으로 바꿔 기기와 무관하게 같은 모양으로 겹친다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
공개 목록에 본인 공개 컬렉션도 섞여, 상세에서 수정·삭제·비공개 전환한 카드가 복귀 후에도 남았다. CollectionListView와 같이 hasAppearedOnce로 복귀를 감지해 목록을 비우지 않고 첫 페이지로 교체한다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
컬렉션은 추천글과 선호장르 사이에 끼어드는 섹션이라, 배지 응답까지 기다리면 첫 진입 때 선호장르가 더 늦게 밀려난다. 배지는 헤더의 점 하나라 늦어도 레이아웃이 움직이지 않아 뒤로 뺐다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
첫 페이지(20개)만 다시 받으면 깊이 스크롤한 뒤 복귀할 때 목록이 잘려 위치가 튀었다. 지금까지 받은 개수만큼(서버 size 상한 100) 다시 받고, 사용자가 누르지 않은 갱신이라 실패하면 직전 목록을 유지한다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
동기화는 목록 길이와 마지막 카드를 유지해 마지막 셀의 onAppear가 다시 불리지 않으므로, 그동안 막힌 더보기를 버리면 하단에서 무한 스크롤이 멈췄다. 동기화 중 들어온(또는 동기화가 취소한) 더보기를 기억했다가 동기화가 끝나면 이어서 부른다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
테스트 커버리지 리포트
Generated by CI on 2026-10-20 18:54 KST |
표지를 maxWidth/maxHeight만 준 flexible frame으로 감싸 자식 크기가 하한이 되면서, scaledToFill 표지가 비율만큼 칸 밖으로 넘쳤다(세로로 긴 표지는 아래로, 가로로 긴 표지는 옆 칸으로). WSSNovelCoverImage의 aspectRatio로 칸을 비율 고정·클립하고, 재현되도록 홈 Demo Mock 표지 비율을 섞었다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
탈퇴 후 재가입은 새 유저라 컬렉션 툴팁·작품 상세 평가 안내를 다시 보여준다. 로그아웃/재로그인은 같은 사람일 가능성이 높아 기록을 유지한다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
회의 결정에 따라 사용자별·좋아요·공개 목록이 카드 하나를 공유한다. owner는 사용자별·좋아요 목록 응답에 없어 옵셔널로 두고(서버가 주면 재리팩터링), isMine은 로그인 ID(AppStorage .userID)와 소유자 ID를 비교해 Mapper에서 판정한다. 좋아요 목록은 소유자를 몰라 isMine이 false로 남는 한계를 문서에 기록했다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
원본 이벤트 리스트에 이 섹션 이벤트가 없어 기존 홈 이벤트 패턴으로 이름을 정했다 (제목 home_collection_all, 카드 home_collectionlist). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
💡 Issue
💭 Summary
홈 화면에 "컬렉션 모음.zip" 섹션을 추가하고, 섹션 제목에서 들어가는 전체 컬렉션뷰를 구현했어요.
탭바의 My 탭을 가리키는 "나만의 컬렉션을 만들어보세요" 툴팁도 함께 추가했어요.
두 화면 모두 서버의
GET /collections(모든 사용자의 공개 컬렉션 목록)를 사용해요.🔑 Key Changes
Domain —
BaseDomainOnboardingHint에myPageCollectionTooltip케이스를 추가했어요.Domain —
CollectionDomainCollectionCard를 같이 써요. 사용자별·좋아요·공개 목록이 카드 하나를 공유해요.CollectionCard에 작성자(owner: Author?)와 내 컬렉션 여부(isMine)를 추가했어요.owner는 옵셔널이에요. 사용자별·좋아요 목록 응답에는 소유자 정보가 없어서예요. 서버가 owner를 내려주면 non-optional로 다시 리팩터링할 예정이에요.fetchPublicCollections(cursor:size:)와LoadPublicCollectionsUseCase, Mock, 테스트 6건을 추가했어요.Data —
CollectionDataGET /collections를 연결했어요.usesTokenIfAvailable로 뒀어요.PublicCollectionsResponseDTO를 따로 만들었어요(전체 개수·공개 여부·대표 작품 없음,owner있음).isMine을 판정하려고 Repository가AppStorage를 받아 로그인 사용자 ID(.userID)를 읽어요.CollectionDataFactory.makeRepository에appStorage인자가 추가됐어요.collectionCards: 사용자별·좋아요 목록. 사용자별은 요청한 userID를 소유자로 보고, 좋아요는 소유자를 몰라nil을 넘겨요.publicCollectionCards: 공개 목록. 응답의owner.userId로 판정해요.isPrivate은 세 목록 모두 서버의isPublic을 뒤집은 값 그대로예요. 남의 비공개 컬렉션은 서버가 내려주지 않아요.Data —
AuthData·BaseDataDefaultOnboardingHintRepository.resetAll()).UI —
WSSComponentWSSCollectionCoverStack으로 승격했어요. 홈 섹션(4칸)과 목록(5칸)이 함께 써요.WSSCollectionOwnerLabel)을 추가했어요.UI —
DesignSystemicCollectionTooltip)을 Figma 원본 그대로 추가했어요.Feature —
HomeFeaturehome_collection_all)과 카드 탭(home_collectionlist)을 Amplitude로 트래킹해요.Feature —
CollectionFeatureCollectionCardHeader로 추출해 전체 컬렉션뷰와 함께 써요.App
PublicCollectionListAssembly).CollectionTooltip,MainTabView).📱 Simulation
🧑🧒🧒 To Reviewer
확인한 범위
봐주셨으면 하는 부분
isMine이 false로 남아요. 지금은 이 값을 쓰는 화면이 없어요. 서버에 owner 추가를 요청할 때 함께 해결하려고 해요.home_collection_all, 카드 탭은home_collectionlist예요. 원본 이벤트 리스트에 없는 이벤트라 기존 홈 이벤트 패턴(home_<섹션>_<대상>)으로 이름을 지었어요. 이 이름이 괜찮은지 봐주세요. 전체 컬렉션뷰에는 아직 이벤트를 걸지 않았어요.※ Reference
🤖 Generated with Claude Code