Skip to content

[FEAT] 홈과 전체 화면용 공개 컬렉션 목록 조회 API 구현 - #637

Merged
GiJungPark merged 1 commit into
devfrom
feat/#636
Oct 11, 2026
Merged

GiJungPark merged 1 commit into
devfrom
feat/#636

Conversation

@GiJungPark

Copy link
Copy Markdown
Member

Related Issue

Key Changes

  • 홈과 전체 컬렉션 화면이 함께 사용할 GET /collections를 추가했습니다. 비로그인·로그인 모두 공개 컬렉션만 조회하며, 로그인 요청은 양방향 차단 관계인 작성자의 항목을 페이지 제한 전에 제외합니다. 같은 경로의 POST와 기존 수정·삭제·좋아요 인증 요구는 유지합니다.
  • 최초 생성 시각·ID 내림차순으로 size + 1개를 조회해 커서 페이지를 구성합니다. 공개 목록 용도와 생성 시각·ID를 담은 전용 커서는 기준 행 삭제 후에도 사용할 수 있으며, 기존 사용자별·좋아요 목록 커서는 거부합니다. 기존 커서 형식은 변경하지 않습니다.
  • 카드에 작성자 프로필, 설명, 전체 작품 수와 저장된 표시 순서 앞쪽 최대 5개의 작품 요약을 제공합니다. 작성자·아바타는 페이지 조회에서 함께 읽고 작품 미리보기는 기존 배치 조회를 재사용합니다. 좋아요 수와 전체 컬렉션 수는 조회하거나 반환하지 않습니다.
  • 인증·커서·페이지 크기·응답·QueryDSL 구성 테스트와 REST Docs를 추가하고 컬렉션 정책 문서를 갱신했습니다.

To Reviewers

  • 공개 접근 허용은 이슈에서 확인된 요구사항이며 정확히 GET /collections에만 추가했습니다. JWT 필터와 기존 API 응답은 변경하지 않았습니다. 기존 Bearer 추출 규약에 따라 비Bearer 헤더·빈 Bearer 값은 익명 처리하고, 만료·위조·Refresh Token은 기존 오류를 반환합니다.
  • ./gradlew build -x test 성공. 컬렉션 관련 테스트 425건 모두 통과. ./gradlew apiDocs도 성공했으며 생성된 OpenAPI의 Query, 중첩 응답과 200/400/401 명세를 확인했습니다.
  • ./gradlew test는 858건 중 13건 실패했습니다. WssServerApplicationTests 1건과 FeedApiIntegrationTest 11건은 로컬 MySQL 연결 거부로 컨텍스트가 로드되지 않았습니다. 나머지 1건은 변경하지 않은 RecentSearchServiceTest의 null ID 실패이며 단독 실행에서도 재현됐습니다. 설정 파일은 생성하지 않았습니다.
  • Repository 테스트는 QueryDSL 조건·정렬·projection·조회 횟수 구성을 검증합니다. 실제 DB 연속 페이지 조회, 실행 계획 및 쿼리 수 검증은 남아 있습니다. (user_id, created_date, collection_id) 인덱스는 전체 목록의 성능 근거로 간주하지 않으며, 추가 인덱스와 다수 차단 사용자 NOT IN 성능은 실행 계획 확인 후 별도 운영 이슈로 처리해야 합니다.
  • 탈퇴 작성자 노출은 기존과 같이 알 수 없는 사용자(user_id=-1)와 필수 아바타 행이 존재하는 전제를 따릅니다. 테이블·컬럼·DB 제약조건·DDL·배포 설정 변경은 없습니다.
  • 변경 15개 파일 중 대부분은 테스트·REST Docs·정책 문서입니다. 하나의 신규 조회 기능을 완성하는 변경이므로 한 PR로 유지했습니다. 클라이언트 UI와 좋아요 기능 변경은 범위에 포함하지 않았습니다.

References

@GiJungPark
GiJungPark marked this pull request as ready for review October 8, 2026 06:38
@GiJungPark
GiJungPark merged commit d4e060f into dev Oct 11, 2026
3 checks passed
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] 홈과 전체 화면을 위한 공개 컬렉션 목록 조회 API 구현

2 participants