Skip to content

Conversation

@ggamnunq
Copy link
Contributor

@ggamnunq ggamnunq commented Aug 19, 2025

  • 문제 해결
    • 지역축제 응답 구조 문제 해결 ( controller에 응답 형태 명시적으로 나타냄 )
    • npe 발생 해결 ( fetch join으로 데이터를 미리 불러옴 )
  • 응답값 변경
    • is_liked -> is_like 통일

Summary by CodeRabbit

  • 새 기능

    • 없음
  • 리팩터

    • 좋아요 상태 필드명을 서비스 전반에서 is_like로 통일(추천 장소, 검색 결과, 사용자 좋아요 목록). 응답 스키마 일관성으로 클라이언트 처리 간소화.
  • 버그 수정

    • 없음
  • 작업(Chores)

    • 좋아요 데이터 조회 방식 최적화로 불필요한 지연 로딩 감소.
    • 일부 API 응답을 널 비허용으로 엄격화해 안정성 개선.
    • 공개 문서 주석 정리.

@ggamnunq ggamnunq self-assigned this Aug 19, 2025
@coderabbitai
Copy link

coderabbitai bot commented Aug 19, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

페스티벌 목록 API의 반환 타입을 non-null로 변경하고 Swagger 주석을 제거. 좋아요 조회는 Repository 쿼리를 LEFT JOIN FETCH로 수정하고 Service에서 해당 메서드를 사용하도록 변경. Home/Search/User Likes 관련 DTO의 필드명과 JSON 키를 isLiked→isLike로 일괄 변경하며 관련 사용처를 업데이트.

Changes

Cohort / File(s) Summary
Festival Controller
src/main/kotlin/.../festival/controller/FestivalController.kt
festivalList 반환 타입을 ApiResponse? → ApiResponse로 변경. @operation 주석 제거. 다른 로직 변화 없음.
Festival Likes fetching
src/main/kotlin/.../festival/repository/FestivalLikesRepository.kt, src/main/kotlin/.../festival/service/FestivalQueryService.kt
Repository 쿼리를 LEFT JOIN FETCH fl.user로 변경하여 사용자 연관 즉시 로딩. Service는 findAllByFestivalIn → findLikeByFestival로 호출 교체. 기타 처리 로직 불변.
Home DTO & Service rename
src/main/kotlin/.../home/dto/HomeResponseDTO.kt, src/main/kotlin/.../home/service/HomeQueryService.kt
RecommendPlace의 isLiked → isLike로 필드명 변경 및 JSON 키 "is_liked" → "is_like". Service의 생성자 인자명도 isLike로 변경.
Search DTO & Util rename
src/main/kotlin/.../search/dto/SearchResultDTO.kt, src/main/kotlin/.../search/util/SearchUtil.kt
SearchResultDTO.InfoDto의 isLiked → isLike 및 JSON 키 변경. Util에서 DTO 생성 시 해당 필드명으로 매핑 수정.
User Likes DTO rename
src/main/kotlin/.../user/data/dto/UserLikesDTO.kt
LikesInfoDto의 isLiked → isLike 및 JSON 키 변경. isEnd는 동일(포맷팅 변경만).

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Client
  participant Controller as FestivalController
  participant Service as FestivalQueryService
  participant RepoF as FestivalRepository
  participant RepoL as FestivalLikesRepository
  participant Storage as DB

  Client->>Controller: GET /festivals?sort=&status=
  Controller->>Service: festivalList(sort, status)
  Service->>RepoF: findBy(sort, status)
  RepoF->>Storage: Query festivals
  Storage-->>RepoF: List<Festival>
  RepoF-->>Service: festivals
  Service->>RepoL: findLikeByFestival(festivals)
  Note right of RepoL: LEFT JOIN FETCH fl.user
  RepoL->>Storage: Query likes + user
  Storage-->>RepoL: List<FestivalLike> (+User)
  RepoL-->>Service: likes
  Service-->>Controller: ApiResponse<ListDto>
  Controller-->>Client: 200 OK (non-null ApiResponse)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

귀 끝 세운 토끼가 깡총, 깡총 뛰네
is_liked는 인사하고 is_like로 갈아타네 🐇
좋아요 길은 한 번에, LEFT JOIN FETCH 고고!
널널해진 응답, null은 안녕히
오늘도 코드밭에 바람 솔솔, 리뷰 끝!

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Free

💡 Knowledge Base configuration:

  • Jira integration is disabled
  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 90bdfbd and 7b0a83c.

📒 Files selected for processing (8)
  • src/main/kotlin/busanVibe/busan/domain/festival/controller/FestivalController.kt (1 hunks)
  • src/main/kotlin/busanVibe/busan/domain/festival/repository/FestivalLikesRepository.kt (1 hunks)
  • src/main/kotlin/busanVibe/busan/domain/festival/service/FestivalQueryService.kt (1 hunks)
  • src/main/kotlin/busanVibe/busan/domain/home/dto/HomeResponseDTO.kt (1 hunks)
  • src/main/kotlin/busanVibe/busan/domain/home/service/HomeQueryService.kt (1 hunks)
  • src/main/kotlin/busanVibe/busan/domain/search/dto/SearchResultDTO.kt (1 hunks)
  • src/main/kotlin/busanVibe/busan/domain/search/util/SearchUtil.kt (2 hunks)
  • src/main/kotlin/busanVibe/busan/domain/user/data/dto/UserLikesDTO.kt (1 hunks)

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Join our Discord community for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@ggamnunq ggamnunq merged commit 85a2a93 into main Aug 19, 2025
1 of 2 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.

2 participants