Skip to content

[REFACTOR] Recommendation 최상위 컨텍스트 패키지 승격 #452

Closed

Description

@Dimo-2562

✨ 리팩토링 할 부분

domain/recommendation에 남아 있는 Recommendation 컨텍스트를 최상위 recommendation 패키지로 승격하고 application/domain/infrastructure/presentation 경계를 정리한다.


🏷️ 도메인 (해당하는 것에 체크)

  • 📝 domain:post (게시글)
  • 👤 domain:useraccount (사용자 계정)
  • 🧠 domain:personalization (개인화 프로필)
  • 🏢 domain:source (테크블로그 출처)
  • 🔍 domain:search (검색)
  • 🔔 domain:notification (알림)
  • 📊 domain:recommendation (추천)
  • 🎯 domain:activity (사용자 활동)
  • 🔐 domain:auth (인증/보안)
  • 🌐 infra (인프라/배포)

📌 현재 코드의 문제점

  • Recommendation은 핵심 하위 도메인이지만 여전히 com.techfork.domain.recommendation 아래에 남아 있다.
  • controller/service/entity/repository 중심의 기존 패키지가 application/domain/infrastructure/presentation 책임을 명확히 드러내지 못한다.
  • 이후 RecommendationSet 도입과 후보 탐색/RRF/MMR 책임 분리를 먼저 진행하면 새로 추가한 클래스까지 다시 이동해야 한다.
  • useraccount, personalization, post, activity, auth 등 이미 정리된 최상위 컨텍스트와 물리적 경계 패턴이 다르다.

🎯 리팩토링 방향

  • com.techfork.domain.recommendation을 com.techfork.recommendation 최상위 컨텍스트로 이동한다.
  • 현재 책임을 다음 계층으로 재배치한다.
    • application: command/query service, 추천 생성 orchestration, listener, scheduler
    • domain: RecommendedPost, RecommendationHistory, MMR 정책
    • infrastructure: repository, 외부 기술 연동 및 설정
    • presentation: controller, converter, response DTO
  • 테스트 패키지와 전체 import를 새 경계에 맞게 동기화한다.
  • Spring bean 이름과 component scan, API endpoint/response shape, DB/Elasticsearch schema, 추천 생성 결과는 유지한다.
  • RecommendationSet 도입, 후보 탐색/RRF/MMR 책임 분리, global support 소유권 회수는 후속 이슈 범위로 유지한다.

💡 기대 효과

  • 가독성 향상
  • 성능 개선
  • 유지보수성 향상
  • 코드 중복 제거
  • 기타: Recommendation 핵심 하위 도메인의 물리적 소유 경계 명확화

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions