Conversation
Summary of ChangesHello @1000hyehyang, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 이 PR은 알림 도메인과 관련 REST API를 구현하여, 사용자가 알림을 저장, 조회, 필터링하고 읽음 처리할 수 있도록 합니다. 푸시 또는 이메일 발송 기능은 포함되지 않으며, 향후 이벤트 발행 등의 서브 이슈에서 이 API를 활용할 수 있도록 기반을 마련합니다. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
이 PR은 알림 도메인과 관련 API를 구현한 것으로, 전반적으로 구조가 잘 잡혀있고 기능 구현이 명확합니다. 특히 도메인, 애플리케이션, 프레젠테이션 계층의 분리가 잘 되어 있으며, Swagger를 통한 API 문서화도 훌륭합니다. 코드의 유지보수성과 안정성을 더욱 높이기 위해 유효하지 않은 입력값에 대한 오류 처리 방식 개선, 중복 코드 제거를 위한 리팩토링, 그리고 Enum 관련 로직의 성능 최적화에 대한 의견을 포함했습니다. 전반적으로 훌륭한 작업입니다.
Summary
Notification 도메인과 알림 페이지 REST API를 구현했습니다. 푸시·이메일 발송은 다루지 않고, 저장·조회·필터·읽음 처리만 담당합니다.
목표: 알림 레코드를 저장·조회·필터·읽음 처리할 수 있는 도메인과 API를 갖추고, 이후 서브 이슈(이벤트 발행·푸시·이메일)에서 이 API를 그대로 사용할 수 있도록 합니다.
Changes
도메인 계층
Notification엔티티 (UUID PK, DeleteBaseEntity 상속)NotificationKindenum (8종: PROPOSAL_RECEIVED, CAMPAIGN_MATCHED 등)NotificationCategoryenum (UI 필터용: PROPOSAL, MATCHING, SETTLEMENT, CHAT)ReferenceTypeenum (CAMPAIGN_PROPOSAL, CAMPAIGN_APPLY, CAMPAIGN)NotificationRepository(JPQL 벌크 업데이트 포함)NotificationErrorCode(404, 403)애플리케이션 계층
NotificationService(생성, 단건 읽음, 전체 읽기, 소프트 삭제)NotificationQueryService(목록 조회, 미읽음 개수)CreateNotificationCommand(Phase 2 이벤트 리스너용 내부 DTO)프레젠테이션 계층
NotificationController(4개 REST 엔드포인트)NotificationSwagger인터페이스NotificationResponse,NotificationListResponse,NotificationDateGroup,ReadAllResponse,UnreadCountResponseAPI 엔드포인트
/api/v1/notifications- 알림 목록 (filter, 페이징, 날짜 그룹)/api/v1/notifications/{id}/read- 단건 읽음 처리/api/v1/notifications/read-all- 전체 읽기 (벌크 UPDATE)/api/v1/notifications/unread-count- 미읽음 개수Type of Change
Related Issues
Closes #216
참고 사항