배경
현재 Goal이나 DailyGoal을 삭제해도 연관된 Task가 삭제되지 않아 고아 Task가 남는 문제가 있다.
BC 간 직접 참조는 아키텍처 원칙에 위배되므로, Spring ApplicationEvent 기반 이벤트 통신으로 해결한다.
목표
- Goal 삭제 시 해당 goalId를 가진 모든 Task 삭제
- DailyGoal 제거 시 해당 goalId + date 조합의 Task 삭제
- BC 간 직접 참조 없이 이벤트 통신으로 구현
제약조건
- docs/layers/bc-event.md 규칙 준수
- 이벤트 클래스는 common/domain/event/에 배치
- @TransactionalEventListener(BEFORE_COMMIT)으로 원자적 처리
- TDD 사이클 준수 (Domain, Application 레이어)
관련 문서
- docs/layers/bc-event.md — BC 간 이벤트 통신 규칙
- docs/architecture.md — 아키텍처 원칙