Skip to content

[REFACTOR] Post 패키지 최상위 승격 및 DDD 레이어 재배치 #384

@Dimo-2562

Description

@Dimo-2562

✨ 리팩토링 할 부분

상위 이슈: #377
선행 참고 이슈: #378, #379, #380, #383

post 컨텍스트 패키지를 최상위로 승격하고,
바운디드 컨텍스트 내부 구조를 DDD 레이어 기준으로 재배치한다.


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

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

📌 현재 코드의 문제점

  • 현재 domain/post 내부에는 aggregate, query, batch, Elasticsearch projection, controller가 함께 섞여 있어 레이어 경계가 package 구조에 잘 드러나지 않는다.
  • 이후 책임 정리(#381)나 교차 컨텍스트 경계 정리(#382)를 진행하려면 먼저 post 컨텍스트 내부 구조가 일관된 레이어 기준으로 정렬되어야 한다.
  • Post를 핵심 aggregate root로 보면서도 package 구조상 domain/application/infrastructure/presentation 구분이 약해 리팩토링 비용이 누적된다.

🎯 리팩토링 방향

  • post 컨텍스트를 최상위 패키지로 승격할지(com.techfork.post) 또는 현 위치를 유지할지 최종 결정하고, 선택한 기준으로 일괄 정리한다.
  • 하위 구조를 DDD 레이어 기준으로 재배치한다.
    • domain: aggregate, entity, value/projection 경계 명시
    • application: query/command/use-case 및 batch orchestrator
    • infrastructure: repository adapter, persistence 세부 구현
    • presentation: controller, request/response adapter
  • document/batch는 aggregate와 같은 층에 두지 않고 projection/application pipeline 관점으로 재배치한다.
  • 테스트 패키지도 동일한 레이어 기준으로 함께 이동해 구조와 검증 위치를 맞춘다.

✅ 작업 체크리스트

  • post 최상위 패키지 승격 여부 확정
  • DDD 레이어 기준 패키지 구조 설계
  • main/test 패키지 경로 일괄 재배치
  • import / bean scan / package-private 영향 정리
  • 이후 #381, #382가 새 구조 위에서 이어질 수 있도록 기반 정리

💡 기대 효과

  • 가독성 향상
  • 성능 개선
  • 유지보수성 향상
  • 코드 중복 제거
  • 기타: post 컨텍스트 구조를 DDD 의도와 일치시키는 기반 확보

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions