From 9d3482b43b32f66244c18028b7c5a062096c78ca Mon Sep 17 00:00:00 2001 From: HanYoonSoo Date: Mon, 29 Jun 2026 11:00:25 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=EC=9D=B8=ED=94=8C=EB=A3=A8?= =?UTF-8?q?=EC=96=B8=EC=84=9C=20=EC=9D=B8=EC=82=AC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=B2=94=EC=9C=84=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../insight/InfluencerInsightCalculator.java | 53 ++++--- .../InfluencerInsightQueryService.java | 25 +++- .../video/repository/VideoRepository.java | 23 +++ .../VideoFormatStatsProjection.java | 9 ++ .../InfluencerInsightCalculatorTest.java | 56 ++++++++ .../InfluencerInsightQueryServiceTest.java | 133 ++++++++++++++++++ 6 files changed, 274 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/example/inflace/domain/video/repository/projection/VideoFormatStatsProjection.java create mode 100644 src/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculatorTest.java create mode 100644 src/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightQueryServiceTest.java diff --git a/src/main/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculator.java b/src/main/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculator.java index 84e4d6f0..2c3d1fb8 100644 --- a/src/main/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculator.java +++ b/src/main/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculator.java @@ -5,6 +5,7 @@ import com.example.inflace.domain.channel.dto.response.GetInfluencerInsightResponse; import com.example.inflace.domain.video.domain.Video; import com.example.inflace.domain.video.domain.VideoStats; +import com.example.inflace.domain.video.repository.projection.VideoFormatStatsProjection; import com.example.inflace.global.util.AnalyticsCalculator; import java.time.LocalDateTime; import java.util.ArrayList; @@ -25,7 +26,6 @@ public class InfluencerInsightCalculator { private static final int CONTENT_WINDOW_SIZE = 50; private static final int GROWTH_WINDOW_SIZE = 25; private static final int FREQUENCY_INTERVAL_WINDOW_SIZE = 5; - private static final int RECENT_WINDOW_DAYS = 30; private static final int MIN_ADVERTISEMENT_VIDEO_COUNT = 3; public InfluencerInsightCalculator(InfluencerInsightScoreCalculator scoreCalculator) { @@ -37,7 +37,8 @@ public GetInfluencerInsightResponse calculate( ChannelStats channelStats, List categories, List