-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Description
개요
미션 사이클(오전 6시 기준) 날짜 계산 로직이 3곳에서 중복 구현되어 있음.
MissionCyclePolicy를 common 패키지로 이동하고 모든 도메인에서 통일된 구현체를 사용하도록 정리.
부모 이슈: #141
문제점
미션 사이클 날짜 보정 로직(오전 6시 기준 날짜 계산)이 3곳에 각자 구현되어 있음:
| 위치 | 메서드명 |
|---|---|
member/MemberService.getAdjustedDate() |
member 도메인 자체 구현 |
team/TeamActivityService.getMissionDate() |
team 도메인 자체 구현 |
recommendation/MissionCyclePolicy.getMissionCycleStart() |
유일하게 클래스로 분리됨 |
동일한 정책 로직이 분산되어 있어, 기준 시각(오전 6시)이 변경될 경우 3곳을 모두 수정해야 함.
해결 방안
recommendation/MissionCyclePolicy를common/패키지로 이동MemberService.getAdjustedDate()제거 →MissionCyclePolicy사용으로 교체TeamActivityService.getMissionDate()제거 →MissionCyclePolicy사용으로 교체
기대 효과
- 미션 사이클 정책 변경 시 단일 지점 수정으로 대응 가능
- 도메인별 중복 구현 제거
변경 파일
src/main/java/com/ryu/studyhelper/
│
├── common/
│ └── MissionCyclePolicy.java ← 신규 (recommendation에서 이동, public)
│ + toMissionDate(LocalDateTime) 메서드 추가
│
├── recommendation/
│ └── service/
│ ├── MissionCyclePolicy.java ← 삭제
│ ├── RecommendationService.java ← import 추가
│ ├── RecommendationEmailService.java ← import 추가
│ └── ScheduledRecommendationService.java ← import 추가
│
└── team/
└── service/
└── TeamActivityService.java ← getMissionDate() 제거, MISSION_RESET_TIME 제거
MissionCyclePolicy.toMissionDate() 사용으로 교체
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done