Skip to content

[Feat] 피드 전체 조회 기능 개발 [0.11.1]#515

Merged
joohyun1996 merged 7 commits intodevelopfrom
feat/feed/get-all-member-feeds
Jan 28, 2026
Merged

[Feat] 피드 전체 조회 기능 개발 [0.11.1]#515
joohyun1996 merged 7 commits intodevelopfrom
feat/feed/get-all-member-feeds

Conversation

@joohyun1996
Copy link
Contributor

📝작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

피드 전체 조회 기능을 개발하였습니다.

피드 조회를 위해 no - offset 기반 페이지네이션이 필요했습니다.
따라서 우선 QueryDSL의 Projection을 사용하여 피드와 회원정보 그리고 피드 종류 정보를 리스트로 받아왔습니다.
그 후, 받아온 리스트에서 피드 정보 식별자만 따로 추출한 후, 해당 식별자 기반으로 해당 피드에 사진 리스트가 있는지 DB에서 추가 조회를 한 후 식별자를 Key로, 사진 리스트를 Value로 유지하는 Map형태로 변환한 후, Map과 List를 new SliceImpl 로 반환하였습니다.
마지막으로 서비스에서 값을 반환시 response dto에서 slice에 들어있던 값을 꺼내서 list로 반환하도록 하였습니다.

++ 회원이 특정 피드에 좋아요와 댓글을 남긴경우 해당 댓글 및 좋아요 여부를 반환하는 컬럼을 응답 DTO에 추가하였습니다.

테스트 커버리지는 100%을 달성하였습니다.

스크린샷 (선택)

API 응답 사진: (API 응답 스크린샷을 첨부해주세요.)
image
image
image

API 명세서 사진: (API 명세서 스크린샷을 첨부해주세요.)
image
image
image
image
image
image
image

테스트 커버리지 사진: (테스트 커버리지 스크린샷을 첨부해주세요.)
image

Closes #499

@joohyun1996 joohyun1996 self-assigned this Jan 28, 2026
Copilot AI review requested due to automatic review settings January 28, 2026 06:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a feed list query feature using no-offset cursor-based pagination with QueryDSL projections. The implementation follows good practices for avoiding N+1 queries by fetching feed pictures in a separate batched query.

Changes:

  • Added feed list query API endpoint (GET /api/v1/feeds) with cursor-based pagination support
  • Implemented QueryDSL-based repository with optimized queries to prevent N+1 issues
  • Added comprehensive test coverage for repository, service, and controller layers
  • Updated build configuration and deployment scripts with memory optimizations

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
FeedQueryController.java REST controller exposing feed list endpoint with pagination
FeedQueryServiceImpl.java Service layer delegating to repository
FeedRepositoryImpl.java QueryDSL implementation with projection and batched picture fetching
FeedDetailResponse.java Response DTO for feed details with member and picture information
GetAllMemberFeedsResponse.java Wrapper response with feeds list and hasNext flag
FeedDetailRecord.java Internal record for QueryDSL projection
FeedPictureRecord.java Record for feed picture data
FeedRepository.java Extended to include custom repository interface
FeedRepositoryCustom.java Custom repository interface definition
FeedRepositoryImplTest.java Comprehensive repository integration tests
FeedQueryServiceImplTest.java Service layer unit tests
FeedQueryControllerTest.java Controller test with API documentation
index.adoc Updated API documentation index
build.gradle Version bump to 0.11.1 and test/build memory configuration
docker-compose.yml Added JVM and Docker memory limits for production
deploy-dev/docker-compose.yml Added memory limits for development
config.sh Updated health check parameters
validate_and_switch.sh Reduced initialization wait time
start_sub_container.sh Reduced initialization wait time

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dlchdaud123
Copy link
Contributor

수고하셨습니다!

@joohyun1996 joohyun1996 merged commit abcc87f into develop Jan 28, 2026
@joohyun1996 joohyun1996 deleted the feat/feed/get-all-member-feeds branch January 28, 2026 13:11
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.

피드 전체 조회 API

3 participants