Feat: 알림 발생 지점 연동 (#188) #199
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📌 개요
Spring Events를 활용한 이벤트 기반 알림 시스템을 구축했습니다. 비즈니스 로직과 알림 로직을 완전히 분리하여 확장 가능하고 유지보수하기 쉬운 구조로 설계했습니다.
🔨 작업 내용
1. 기존 알림 시스템 개선
2. 공통 인프라 구축
3. 스터디룸 알림 이벤트 시스템
StudyRoomNoticeCreatedEvent: 공지사항 등록MemberRoleChangedEvent: 권한 변경MemberKickedEvent: 멤버 추방OwnerTransferredEvent: 방장 위임4. 학습 알림 이벤트 시스템
StudyRecordCreatedEvent: 학습 기록 등록DailyGoalAchievedEvent: 일일 목표 달성5. 학습 알림 이벤트 시스템
CommentCreatedEvent: 댓글 작성ReplyCreatedEvent: 대댓글 작성PostLikedEvent: 게시글 좋아요CommentLikedEvent: 댓글 좋아요6. 비즈니스 로직 연동
RoomService
changeUserRole()- 권한 변경/방장 위임 이벤트 발행kickMember()- 멤버 추방 이벤트 발행StudyRecordService
createStudyRecord()- 학습 기록/일일 목표 이벤트 발행getTodayStudyPlans()- StudyPlanService 활용한 반복 계획 처리CommentService
createComment()- 댓글 작성 이벤트 발행createReply()- 대댓글 작성 이벤트 발행🔗 관련 이슈
Closes #188
📝 참고 사항
일일 목표 달성 기준
오늘 계획한 모든 StudyPlan에 대해 StudyRecord가 존재하면 달성
반복 계획 포함 (StudyPlanService.getStudyPlansForDate() 활용)
남은 작업
✅ 체크리스트