✨ 리팩토링 할 부분
상위 이슈: #395
선행 이슈: #396, #399
관심사 저장/교체 로직의 핵심 불변식을 InterestCommandService가 아니라
User aggregate가 소유하도록 정리한다.
🏷️ 도메인
📌 현재 코드의 문제점
- 관심 카테고리/키워드 조립과 유효성 검증이
InterestCommandService에 몰려 있다.
- "키워드는 선택된 카테고리에 속해야 한다" 규칙이 aggregate 내부가 아니라 서비스 레이어에 있다.
user.getInterestCategories().clear() 같은 컬렉션 직접 조작이 서비스에 노출돼 있다.
🎯 리팩토링 방향
User.replaceInterests(...) 또는 동등한 aggregate 메서드를 도입한다.
- 관심사 교체 시 카테고리/키워드 조립과 검증을 aggregate 내부에서 처리한다.
InterestCommandService는 request 해석과 트리거 orchestration 중심으로 축소한다.
✅ 작업 체크리스트
💡 기대 효과
✨ 리팩토링 할 부분
상위 이슈: #395
선행 이슈: #396, #399
관심사 저장/교체 로직의 핵심 불변식을
InterestCommandService가 아니라Useraggregate가 소유하도록 정리한다.🏷️ 도메인
📌 현재 코드의 문제점
InterestCommandService에 몰려 있다.user.getInterestCategories().clear()같은 컬렉션 직접 조작이 서비스에 노출돼 있다.🎯 리팩토링 방향
User.replaceInterests(...)또는 동등한 aggregate 메서드를 도입한다.InterestCommandService는 request 해석과 트리거 orchestration 중심으로 축소한다.✅ 작업 체크리스트
💡 기대 효과