Skip to content

[deploy] 운영서버로 배포 25/08/17#240

Merged
buzz0331 merged 27 commits into
mainfrom
develop
Aug 16, 2025
Merged

[deploy] 운영서버로 배포 25/08/17#240
buzz0331 merged 27 commits into
mainfrom
develop

Conversation

@buzz0331
Copy link
Copy Markdown
Contributor

@buzz0331 buzz0331 commented Aug 16, 2025

#️⃣ 연관된 이슈

closes #이슈번호

📝 작업 내용

  • inner class 오류 수정
  • 특정 책으로 작성된 피드 api 개발

📸 스크린샷

💬 리뷰 요구사항

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

📌 PR 진행 시 이러한 점들을 참고해 주세요

* P1 : 꼭 반영해 주세요 (Request Changes) - 이슈가 발생하거나 취약점이 발견되는 케이스 등
* P2 : 반영을 적극적으로 고려해 주시면 좋을 것 같아요 (Comment)
* P3 : 이런 방법도 있을 것 같아요~ 등의 사소한 의견입니다 (Chore)

Summary by CodeRabbit

  • 신기능
    • 도서 연관 피드 조회 API 추가(정렬: 인기/최신, 커서 기반 페이징, 본인 작성 제외, 저장/좋아요 상태 포함).
  • 변경 사항
    • 기록/투표 기능을 RoomPost 도메인으로 통합(요청/응답 타입 및 경로 정리, 방 daily-greeting 엔드포인트 이동).
    • 여러 응답 DTO 명칭 및 필드 개선(피드/방/도서/유저 검색 응답 구조 정리, 사용자 검색에 별칭/팔로워 수 추가).
    • 방 참여 요청 타입을 문자열에서 enum 기반으로 변경해 입력 일관성 강화.
  • 테스트
    • 새 도서 연관 피드 API 통합 테스트 추가 및 다수 테스트 클래스명/패키지 정리.

buzz0331 and others added 27 commits August 15, 2025 16:19
[chore] 패키지 구조 변경 (RoomPost 도입)
…e-inner-class-naming

[hotfix] 개발된 모든 api의 response inner class 네이밍 수정
[feat] 특정 책으로 작성된 피드 목록 조회 api 개발
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Aug 16, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

대규모 리팩터링과 기능 추가가 포함됨. record/vote 도메인을 roompost로 이관(컨트롤러, 포트, DTO, 엔티티/리포지토리, 매퍼, 서비스 전반). PostType/CountUpdatable 등 공통->post.domain 이동. 책-연관 피드 조회(ISBN) 신규 API/서비스/쿼리 추가. 여러 응답 DTO 내부 타입명 변경/확장. 도메인 서비스 애너테이션 추가.

Changes

Cohort / File(s) Summary
Book 응답/포트 확장
src/main/java/.../book/adapter/in/web/response/BookRecruitingRoomsResponse.java, .../BookSearchListResponse.java, .../adapter/out/persistence/BookQueryPersistenceAdapter.java, .../application/port/out/BookQueryPort.java, .../adapter/out/persistence/repository/BookJpaRepository.java, .../application/mapper/BookQueryMapper.java
응답 DTO 내부 타입 Book*Dto로 명확화 및 필드 확장. existsBookByIsbn 추가(Port/Adapter/Repository). 매퍼 시그니처 업데이트.
Feed: 책-연관 피드 신규 기능
.../feed/adapter/in/web/FeedQueryController.java, .../feed/adapter/in/web/response/FeedRelatedWithBookResponse.java, .../feed/adapter/out/persistence/FeedQueryPersistenceAdapter.java, .../feed/adapter/out/persistence/repository/FeedQueryRepository*.java, .../feed/application/port/in/*FeedRelatedWithBook*, .../feed/application/port/out/FeedQueryPort.java, .../feed/application/port/out/dto/FeedQueryDto.java, .../feed/application/mapper/FeedQueryMapper.java, .../feed/application/service/FeedRelatedWithBookService.java
GET /feeds/related-books/{isbn} 추가. 정렬(LIKE/LATEST), 커서 기반 페이지네이션 구현. Port/Repo/Impl/DTO/Mapper/Service 전반 추가 및 likeCount/commentCount Integer로 변경, QueryProjection 생성자 추가.
Feed 응답 DTO 리네이밍
.../feed/adapter/in/web/response/FeedShowAllResponse.java, .../FeedShowByUserResponse.java, .../FeedShowMineResponse.java, 사용처: .../application/service/*Show*Service.java, .../application/mapper/FeedQueryMapper.java
내부 DTO 명칭을 목적별로 변경(FeedDto → FeedShowAllDto 등). 매퍼/서비스 반환 타입 일괄 수정.
Comment 정리
.../comment/adapter/out/jpa/CommentJpaEntity.java, .../comment/.../service/*.java, .../comment/application/service/policy/*.java, .../comment/application/service/validator/CommentAuthorizationValidator.java, .../comment/domain/Comment.java
PostType/의존 패키지 경로 변경. @Builder.Default 추가로 commentLikeList 빌더 초기값 보장. 동작 변화 없음.
Post 공통 타입 이동/정책
.../post/domain/CountUpdatable.java, .../post/domain/PostType.java, .../post/application/service/handler/PostHandler.java, .../post/application/service/policy/PostLikeAccessPolicy.java, .../post/application/service/validator/PostLikeAuthorizationValidator.java, 참조처 다수
CountUpdatable/PostType를 post.domain으로 이동. PostType.roomPostTypeFrom 추가. PostHandler 패키지 이동 및 roompost 참조로 갱신.
DomainService 추가 및 적용
.../common/annotation/DomainService.java, .../post/domain/service/PostCountService.java
@domainservice 신규 추가(@component 메타). PostCountService에 적용. 기능 변화 없음.
Room: Join 타입 개선/컨트롤러 응답 변경
.../room/adapter/in/web/RoomCommandController.java, .../room/adapter/in/web/request/RoomJoinRequest.java, .../room/application/port/in/dto/RoomJoinCommand.java, .../room/application/port/in/dto/RoomJoinType.java, .../room/application/service/RoomJoinService.java
RoomJoinType 패키지 이동 및 String → enum 사용으로 Command 변경. 서비스 로직 switch 기반으로 정리. 생성/참여 응답 래퍼 교체.
record/vote → roompost 대이관(웹/포트/도메인/영속/매퍼/서비스)
src/main/java/.../roompost/**(controllers, requests, responses, domain, ports in/out, adapters out, repositories, mappers, services, validator, manager), 삭제/이동:.../record/**, .../vote/**, .../room/**(attendance)
RoomPost 집합으로 통합: 레코드/투표/오늘의 한마디 API/서비스/리포지토리/DTO 전면 이동 및 일부 명칭 변경(RoomPostSearch*, RoomPostSortType 등). 기존 record/vote 컨트롤러/포트 등 제거.
Feed/RoomPost 접근 정책 이동
.../feed/application/service/policy/FeedLikeAccessPolicy.java, .../roompost/application/service/policy/RoomPostLikeAccessPolicy.java, .../config/PostAccessPolicyConfig.java
정책 클래스 패키지/의존 경로 갱신(Feed/RoomPost 구분). 설정 클래스의 import 경로 정리.
기타 정리/수정
.../feed/adapter/in/web/request/FeedIsLikeRequest.java, .../post/adapter/out/jpa/PostJpaEntity.java, .../post/application/port/in/dto/PostIsLikeCommand.java, .../post/application/port/out/PostLikeCommandPort.java, .../post/application/service/PostLikeService.java, .../feed/domain/Feed.java
PostType/CountUpdatable import 경로 변경 및 불필요 import 제거. 기능 변화 없음.
테스트 업데이트/추가
src/test/java/** 다수, 신규: .../feed/adapter/in/web/FeedRelatedWithBookApiTest.java
패키지/클래스명/표시명 정리. roompost 경로로 의존 이관. 책-연관 피드 API 통합 테스트 추가(정렬/페이지/가시성 검증).

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Client
  participant C as FeedQueryController
  participant U as FeedRelatedWithBookUseCase(Service)
  participant BQ as BookQueryPort
  participant FQ as FeedQueryPort
  participant PL as PostLikeQueryPort
  participant M as FeedQueryMapper

  Client->>C: GET /feeds/related-books/{isbn}?sort&cursor
  C->>U: getFeedsByBook(query{isbn, sortType, cursor, userId})
  U->>BQ: existsBookByIsbn(isbn)
  alt not exists
    U-->>C: FeedRelatedWithBookResponse(feeds=[], nextCursor=null, isLast=true)
    C-->>Client: 200 OK
  else exists
    alt sort=LIKE
      U->>FQ: findFeedsByBookIsbnOrderByLike(isbn, userId, cursor)
    else sort=LATEST
      U->>FQ: findFeedsByBookIsbnOrderByLatest(isbn, userId, cursor)
    end
    U->>FQ: findSavedFeedIds(userId, feedIds)
    U->>PL: findLikedFeedIds(userId, feedIds)
    U->>M: toFeedRelatedWithBookDtos(dtos, savedIds, likedIds, userId)
    U-->>C: FeedRelatedWithBookResponse(feeds, nextCursor, isLast)
    C-->>Client: 200 OK
  end
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120–180 minutes

Possibly related PRs

Poem

귀 책의 등에 숫자 열셋, ISBN 길 따라가며,
좋아요 별빛을 헤아리고, 최신 바람도 살짝 타요.
record와 vote는 방에 모여, roompost로 둥지 틀고—
새 이름, 새 길, 토끼 발자국 또렷!
오늘의 한 마디: “다음 커서는 오른쪽!” 🐇✨

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.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

🪧 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? Create a ticket on our support page 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.

@buzz0331 buzz0331 merged commit b1151ac into main Aug 16, 2025
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants