Skip to content

Conversation

@jueunk617
Copy link
Collaborator

📌 개요

알림 도메인 전반의 성능을 최적화하고, 아키텍처를 개선하여 유지보수성과 확장성을 높이는 리팩토링을 진행했습니다.

🔨 작업 내용

알림 목록 조회 성능 개선 (N+1 문제 해결)

  • 알림 목록 조회 시, 각 알림의 '읽음' 상태를 확인하기 위해 발생하던 N+1 쿼리 문제를 해결했습니다.
  • QueryDSL과 IN 절을 활용하여, 페이지 내 모든 알림의 읽음 상태를 단 한 번의 추가 쿼리로 조회하도록 최적화했습니다.

API 역할 분리 및 아키텍처 개선

  • 모든 종류의 알림을 생성하던 만능 API(POST /api/notifications)와 관련 DTO(NotificationCreateRequest)를 제거했습니다.
  • 이제 모든 알림 생성은 각 도메인에서 발생하는 이벤트를 통해서만 이루어지도록 아키텍처를 통일하여 응집도를 높였습니다.

서비스 및 이벤트 리스너 역할 명확화

  • EventListener가 Repository에 직접 의존하여 엔티티를 조회하던 로직을 제거했습니다.
  • NotificationService가 ID를 받아 엔티티를 조회하도록 책임을 위임하여, 리스너는 오직 이벤트 전달이라는 단일 책임만 갖도록 구조를 개선했습니다.

🔗 관련 이슈

Closes #234

✅ 체크리스트

  • 기능 동작 확인
  • 테스트 코드 작성
  • 문서/주석 추가 및 최신화

@github-actions github-actions bot changed the title Refactor: 알림 도메인 리팩토링 Refactor: 알림 도메인 리팩토링 (#234) Oct 11, 2025
@jueunk617 jueunk617 merged commit 2efc53d into dev Oct 12, 2025
3 checks passed
@github-actions github-actions bot deleted the Refactor/234 branch October 12, 2025 05:57
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.

4 participants