Skip to content

[TASK] reward 도메인 구조 리팩토링 #1

@KangJiSseok

Description

@KangJiSseok

📌 작업 내용

was/src/main/java/kr/withrun/was/domain/reward 패키지의 구조를 리팩토링한다.
현재 reward 패키지는 기술 레이어 기준으로는 정리되어 있지만, 실제 비즈니스 관심사는 포인트, 리워드 아이템, 가챠, 드로우풀 관리로 나뉘어 있어 구조적 경계가 흐려져 있다.

🎯 목적 / 배경

  • reward 패키지가 하나의 도메인처럼 보이지만 실제로는 여러 하위 관심사가 함께 존재한다.
  • 서비스/DTO/컨트롤러가 서브도메인 기준으로 충분히 분리되지 않아 탐색 비용이 높다.
  • 일부 서비스는 책임이 크고, 중복 로직(resolveUserId, ensureUserExists 등)도 보여 유지보수성이 떨어진다.
  • 테스트는 이미 하위 관심사별로 나뉘어 있어, 코드 구조도 그 경계를 더 잘 반영할 필요가 있다.

✅ 작업 항목 (To-Do)

  • reward 도메인의 하위 관심사(포인트 / 아이템 / 가챠 / 드로우풀) 경계를 재정의한다.
  • 패키지 구조를 하위 관심사 중심으로 재배치할지 검토하고 적용한다.
  • 과도하게 큰 서비스의 책임을 분리한다.
  • 컨트롤러/서비스의 중복 로직을 공통화할 수 있는지 검토한다.
  • 기존 테스트가 깨지지 않도록 구조 변경 후 테스트를 정리한다.
  • 필요 시 후속 리팩토링 이슈로 분리한다.

🏁 완료 조건 (Definition of Done)

  • reward 도메인 구조가 하위 관심사 기준으로 더 명확하게 구분된다.
  • 주요 서비스의 책임이 이전보다 작고 명확해진다.
  • 중복 로직이 줄어든다.
  • 기존 reward 관련 테스트가 모두 통과한다.
  • 후속 작업이 필요하면 별도 이슈로 분리되어 추적 가능하다.

🔗 참고

  • 대상 경로: was/src/main/java/kr/withrun/was/domain/reward
  • 관련 테스트: was/src/test/java/kr/withrun/was/domain/reward

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions