Skip to content

Commit 5f2567a

Browse files
authored
[refactor/#452] Recommendation 최상위 컨텍스트 패키지 승격 (#455)
* refactor: recommendation 도메인 계층을 최상위로 승격 * refactor: 영속성 계층을 infrastructure로 이동 * refactor: 설정 클래스들을 최상위 계층으로 승격 * refactor: retrieval과 reranking 로직을 application layer로 승격 * refactor: 나머지 서비스들(command/query/scheduler/listener)도 application layer로 승격 * refactor: presentation 계층으로 controller와 converter, dto 이동
1 parent 3cc52a1 commit 5f2567a

37 files changed

Lines changed: 100 additions & 97 deletions

File tree

docs/convention/test-convention.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
- 현재 legacy 유지 대상:
3535
- `com.techfork.domain.source`
3636
- `com.techfork.domain.search`
37-
- `com.techfork.domain.recommendation`
3837
- 테스트만 먼저 `com.techfork.<context>`로 옮기지 않는다. production과 test의 root가 달라지면 IDE 탐색, package-private 접근, fixture 소유권 판단이 어긋날 수 있다.
3938
- legacy slice를 이관할 때는 다음을 같은 작업 단위로 묶는다.
4039
- production package 선언과 디렉터리 이동

src/main/java/com/techfork/global/config/ElasticsearchCacheManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import co.elastic.clients.elasticsearch._types.KnnSearch;
55
import co.elastic.clients.json.JsonData;
66
import com.techfork.post.domain.projection.PostDocument;
7-
import com.techfork.domain.recommendation.config.RecommendationProperties;
7+
import com.techfork.recommendation.config.RecommendationProperties;
88
import com.techfork.personalization.infrastructure.PersonalizationProfileDocument;
99
import lombok.RequiredArgsConstructor;
1010
import lombok.extern.slf4j.Slf4j;

src/main/java/com/techfork/global/util/LinearTimeDecayStrategy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.techfork.global.util;
22

3-
import com.techfork.domain.recommendation.config.RecommendationProperties;
3+
import com.techfork.recommendation.config.RecommendationProperties;
44
import lombok.RequiredArgsConstructor;
55
import lombok.extern.slf4j.Slf4j;
66
import org.springframework.stereotype.Component;

src/main/java/com/techfork/domain/recommendation/service/RecommendationCommandService.java renamed to src/main/java/com/techfork/recommendation/application/command/RecommendationCommandService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.techfork.domain.recommendation.service;
1+
package com.techfork.recommendation.application.command;
22

3+
import com.techfork.recommendation.application.generation.RecommendationService;
34
import com.techfork.useraccount.application.query.lookup.UserLookupService;
45
import com.techfork.useraccount.domain.User;
56
import lombok.RequiredArgsConstructor;

src/main/java/com/techfork/domain/recommendation/service/LlmRecommendationService.java renamed to src/main/java/com/techfork/recommendation/application/generation/LlmRecommendationService.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
package com.techfork.domain.recommendation.service;
1+
package com.techfork.recommendation.application.generation;
22

33
import co.elastic.clients.elasticsearch.ElasticsearchClient;
44
import co.elastic.clients.elasticsearch._types.KnnSearch;
55
import co.elastic.clients.elasticsearch._types.query_dsl.Query;
66
import co.elastic.clients.elasticsearch.core.SearchResponse;
77
import co.elastic.clients.elasticsearch.core.search.Hit;
88
import com.techfork.activity.readpost.application.query.lookup.ReadPostLookupService;
9-
import com.techfork.domain.recommendation.config.RecommendationProperties;
10-
import com.techfork.domain.recommendation.entity.RecommendationHistory;
11-
import com.techfork.domain.recommendation.entity.RecommendedPost;
12-
import com.techfork.domain.recommendation.repository.RecommendationHistoryRepository;
13-
import com.techfork.domain.recommendation.repository.RecommendedPostRepository;
14-
import com.techfork.domain.recommendation.service.MmrService.MmrCandidate;
15-
import com.techfork.domain.recommendation.service.MmrService.MmrResult;
9+
import com.techfork.recommendation.application.ranking.MmrService;
10+
import com.techfork.recommendation.application.ranking.MmrService.MmrCandidate;
11+
import com.techfork.recommendation.application.ranking.MmrService.MmrResult;
12+
import com.techfork.recommendation.config.RecommendationProperties;
13+
import com.techfork.recommendation.domain.RecommendationHistory;
14+
import com.techfork.recommendation.domain.RecommendedPost;
15+
import com.techfork.recommendation.infrastructure.RecommendationHistoryRepository;
16+
import com.techfork.recommendation.infrastructure.RecommendedPostRepository;
1617
import com.techfork.global.elasticsearch.query.VectorQueryBuilder;
1718
import com.techfork.global.util.RrfScorer;
1819
import com.techfork.global.util.TimeDecayStrategy;

src/main/java/com/techfork/domain/recommendation/service/RecommendationService.java renamed to src/main/java/com/techfork/recommendation/application/generation/RecommendationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.techfork.domain.recommendation.service;
1+
package com.techfork.recommendation.application.generation;
22

33
import com.techfork.useraccount.domain.User;
44
import java.util.List;

src/main/java/com/techfork/domain/recommendation/listener/PersonalizedProfileGeneratedEventListener.java renamed to src/main/java/com/techfork/recommendation/application/listener/PersonalizedProfileGeneratedEventListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.techfork.domain.recommendation.listener;
1+
package com.techfork.recommendation.application.listener;
22

3-
import com.techfork.domain.recommendation.service.RecommendationService;
3+
import com.techfork.recommendation.application.generation.RecommendationService;
44
import com.techfork.personalization.application.event.PersonalizedProfileGeneratedEvent;
55
import com.techfork.useraccount.application.query.lookup.UserLookupService;
66
import com.techfork.useraccount.domain.User;

src/main/java/com/techfork/domain/recommendation/service/RecommendationQueryService.java renamed to src/main/java/com/techfork/recommendation/application/query/RecommendationQueryService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package com.techfork.domain.recommendation.service;
1+
package com.techfork.recommendation.application.query;
22

33
import com.techfork.activity.bookmark.application.query.lookup.BookmarkLookupService;
4-
import com.techfork.domain.recommendation.converter.RecommendationConverter;
5-
import com.techfork.domain.recommendation.dto.RecommendationListResponse;
6-
import com.techfork.domain.recommendation.dto.RecommendedPostDto;
7-
import com.techfork.domain.recommendation.entity.RecommendedPost;
8-
import com.techfork.domain.recommendation.repository.RecommendedPostRepository;
4+
import com.techfork.recommendation.presentation.RecommendationConverter;
5+
import com.techfork.recommendation.presentation.response.RecommendationListResponse;
6+
import com.techfork.recommendation.presentation.response.RecommendedPostDto;
7+
import com.techfork.recommendation.domain.RecommendedPost;
8+
import com.techfork.recommendation.infrastructure.RecommendedPostRepository;
99
import com.techfork.useraccount.application.query.lookup.UserLookupService;
1010
import com.techfork.useraccount.domain.User;
1111
import lombok.RequiredArgsConstructor;

src/main/java/com/techfork/domain/recommendation/service/MmrService.java renamed to src/main/java/com/techfork/recommendation/application/ranking/MmrService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.techfork.domain.recommendation.service;
1+
package com.techfork.recommendation.application.ranking;
22

3-
import com.techfork.domain.recommendation.config.RecommendationProperties;
3+
import com.techfork.recommendation.config.RecommendationProperties;
44
import com.techfork.global.util.VectorUtil;
55
import lombok.Builder;
66
import lombok.Getter;

src/main/java/com/techfork/domain/recommendation/scheduler/RecommendationScheduler.java renamed to src/main/java/com/techfork/recommendation/application/scheduler/RecommendationScheduler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package com.techfork.domain.recommendation.scheduler;
1+
package com.techfork.recommendation.application.scheduler;
22

3-
import com.techfork.domain.recommendation.config.RecommendationProperties;
4-
import com.techfork.domain.recommendation.service.RecommendationService;
3+
import com.techfork.recommendation.config.RecommendationProperties;
4+
import com.techfork.recommendation.application.generation.RecommendationService;
55
import com.techfork.useraccount.application.query.lookup.UserLookupService;
66
import com.techfork.useraccount.domain.User;
77
import lombok.RequiredArgsConstructor;

0 commit comments

Comments
 (0)