-
Notifications
You must be signed in to change notification settings - Fork 1
[scrum-415] Refactor : 피드백 api 수정 #116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
워크스루(Walkthrough)피드백 기능에 피드백 유형 추적을 추가했습니다. 새로운 FeedbackType 열거형(SEARCH_FOOD, SEARCH_RESTAURANT, SEARCH_COMMUNITY)을 도입하고, Feedback 도메인 엔티티, 요청 DTO, 서비스 계층에 type 필드를 통합했습니다. CD 스크립트의 docker-compose 명령어를 docker compose로 업데이트했으며, 동시성 테스트를 제거했습니다. 변경사항(Changes)
시퀀스 다이어그램(Sequence Diagram)sequenceDiagram
participant Client
participant Controller as FeedbackController
participant Service as FeedbackService
participant Domain as Feedback
participant DB as Database
Client->>Controller: POST /feedback<br/>(rating, content, type)
Controller->>Service: addFeedback(FeedbackRequest)
Service->>Domain: new Feedback(rating, content, type)
Domain->>Domain: Initialize fields
Service->>DB: save(feedback)
DB-->>Service: Saved feedback
Service-->>Controller: Response
Controller-->>Client: 201 Created
예상 코드 리뷰 노력🎯 3 (중간) | ⏱️ ~20분 시
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/test/java/com/kkinikong/be/community/service/CommunityServiceTest.java (1)
34-46: 사용되지 않는 테스트 설정 코드입니다.테스트 메서드가 주석 처리되어
setUp()에서 생성한 100명의 유저가 더 이상 사용되지 않습니다. 불필요한 데이터베이스 작업이 매 테스트마다 실행됩니다.테스트 메서드를 삭제하거나 재활성화할 계획이 없다면 다음과 같이
setUp()메서드도 함께 제거하세요:- @BeforeEach - void setUp() { - // 유저 100명 생성 - for (long i = 1; i <= THREAD_COUNT; i++) { - User user = - userRepository.save( - User.basicLoginBuilder() - .email("user" + i + "@example.com") - .password("password" + i) - .buildBasicLogin()); - userIds.add(user.getId()); - } - }src/main/java/com/kkinikong/be/feedback/service/FeedbackService.java (1)
18-18: 사용되지 않는 의존성입니다.
UserRepository가 주입되었지만addFeedback메서드에서 사용되지 않습니다. 향후 사용 계획이 없다면 제거하세요.@Service @RequiredArgsConstructor public class FeedbackService { private final FeedbackRepository feedbackRepository; - private final UserRepository userRepository;
🧹 Nitpick comments (1)
src/main/java/com/kkinikong/be/feedback/controller/FeedbackController.java (1)
26-31: API 문서 설명 포맷을 개선할 수 있습니다.문자열 연결을 사용한 현재 방식은 가독성이 떨어집니다. 텍스트 블록이나 단일 문자열로 작성하면 더 깔끔합니다.
@Operation( summary = "의견 남기기", description = - "type에 SEARCH_FOOD(\"음식결과없음\")" - + " SEARCH_RESTAURANT(\"식당결과없음\")," - + " SEARCH_COMMUNITY(\"커뮤니티결과없음\") 중 하나로 의견을 남깁니다.") + "type에 SEARCH_FOOD(\"음식결과없음\"), SEARCH_RESTAURANT(\"식당결과없음\"), SEARCH_COMMUNITY(\"커뮤니티결과없음\") 중 하나로 의견을 남깁니다.")
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
.github/workflows/kkinikong-be-cd.yml(1 hunks)src/main/java/com/kkinikong/be/feedback/controller/FeedbackController.java(1 hunks)src/main/java/com/kkinikong/be/feedback/domain/Feedback.java(2 hunks)src/main/java/com/kkinikong/be/feedback/domain/type/FeedbackType.java(1 hunks)src/main/java/com/kkinikong/be/feedback/dto/request/FeedbackRequest.java(1 hunks)src/main/java/com/kkinikong/be/feedback/service/FeedbackService.java(1 hunks)src/test/java/com/kkinikong/be/community/service/CommunityServiceTest.java(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (4)
src/main/java/com/kkinikong/be/feedback/service/FeedbackService.java (1)
src/main/java/com/kkinikong/be/feedback/repository/FeedbackRepository.java (1)
FeedbackRepository(7-7)
src/main/java/com/kkinikong/be/feedback/dto/request/FeedbackRequest.java (3)
src/main/java/com/kkinikong/be/review/dto/request/ReviewRequest.java (1)
ReviewRequest(13-19)src/main/java/com/kkinikong/be/community/dto/request/CommunityPostUpdateRequest.java (1)
CommunityPostUpdateRequest(10-14)src/main/java/com/kkinikong/be/community/dto/request/CommunityPostRequest.java (1)
CommunityPostRequest(8-11)
src/main/java/com/kkinikong/be/feedback/domain/type/FeedbackType.java (8)
src/main/java/com/kkinikong/be/feedback/exception/errorcode/FeedbackErrorCode.java (1)
Getter(10-16)src/main/java/com/kkinikong/be/notification/domain/type/NotificationType.java (1)
Getter(5-18)src/main/java/com/kkinikong/be/convenience/domain/type/Category.java (1)
Getter(5-17)src/main/java/com/kkinikong/be/community/domain/type/Category.java (1)
Getter(5-19)src/main/java/com/kkinikong/be/review/domain/type/Tag.java (1)
Getter(5-35)src/main/java/com/kkinikong/be/report/domain/type/ReportType.java (1)
ReportType(3-8)src/main/java/com/kkinikong/be/feedback/exception/FeedbackException.java (1)
Getter(8-12)src/main/java/com/kkinikong/be/store/domain/type/Category.java (1)
Getter(5-24)
src/test/java/com/kkinikong/be/community/service/CommunityServiceTest.java (3)
src/main/java/com/kkinikong/be/community/service/CommunityLikeToggleExecutor.java (3)
Service(30-105)Transactional(41-69)Transactional(71-98)src/main/java/com/kkinikong/be/community/domain/CommunityPost.java (2)
decrementLikeCount(99-101)incrementLikeCount(95-97)src/main/java/com/kkinikong/be/community/service/CommunityService.java (1)
postCommunityCommentLike(210-228)
🔇 Additional comments (6)
.github/workflows/kkinikong-be-cd.yml (3)
64-65: Docker Compose v1 → v2 마이그레이션 완료 - 권장 변경사항 입니다.Docker Compose v1은 2023년 7월부로 더 이상 지원되지 않으며, Compose v2의 권장 명령어 구문은
docker compose입니다. 모든 docker-compose 명령이 일관되게docker compose로 변경되었으므로 현대적 Docker 표준을 따르고 있습니다.
69-71: Blue-Green 배포 로직에서 docker compose 명령어 일관성 유지배포 프로세스의 모든 docker compose 명령어(stop, rm, up)가 일관되게 업데이트되었으며,
|| true절을 통해 멱등성(idempotency)이 유지되고 있습니다. 이는 컨테이너가 실행 중이지 않을 때도 오류 없이 동작하도록 보장합니다.Also applies to: 82-84
78-78: 정리 단계에서도 docker compose 명령어 적용기존 컨테이너 중지(stop) 명령어도 새로운 docker compose 구문으로 업데이트되었으며,
|| true절이 있어 서비스가 이미 중지된 경우에도 워크플로우가 계속 진행됩니다.Also applies to: 91-91
src/main/java/com/kkinikong/be/feedback/service/FeedbackService.java (1)
23-27: 변경 사항이 올바르게 구현되었습니다.새로운
type필드가 요청 DTO에서 도메인 엔티티로 정확하게 전달됩니다.src/main/java/com/kkinikong/be/feedback/domain/type/FeedbackType.java (1)
1-16: 구현이 잘 되었습니다.프로젝트의 다른 enum(
NotificationType,Category,Tag)과 일관된 패턴을 따르고 있습니다. 코드가 명확하고 유지보수하기 좋습니다.src/main/java/com/kkinikong/be/feedback/domain/Feedback.java (1)
31-36: 생성자가 올바르게 업데이트되었습니다.새로운
type파라미터가 생성자에 추가되고 적절하게 초기화됩니다.
src/main/java/com/kkinikong/be/feedback/dto/request/FeedbackRequest.java
Show resolved
Hide resolved
src/test/java/com/kkinikong/be/community/service/CommunityServiceTest.java
Show resolved
Hide resolved
erika0915
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고해쓰요👍🏻💯
📝 개요
피드백 api에 타입 필드를 추가했습니다.
추가로 배포 프로세스에 문제가 있어서 수정했습니다.
🛠️ 작업 사항
🔗 관련 이슈 / JIRA
✅ 체크리스트
🙏 기타 사항
추가적으로 리뷰어가 알아야 할 사항 작성
Summary by CodeRabbit
새 기능
개선 사항