Repository navigation
in-348-인플루언서-인사이트-조회-최적화 -> develop - #214
Hidden character warning
Conversation
|
Warning Review limit reached
Next review available in: 50 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Walkthrough
Changes포맷 분석 프로젝션 도입 및 인사이트 조회 개선
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
src/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculatorTest.java (2)
20-56: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
adExperienceRate도 같이 고정해 주세요.이번 변경 범위에는 viral뿐 아니라 ad experience 분모 수정도 포함되는데, 현재 테스트는 viral 지표만 확인해서 해당 경로 회귀를 놓칠 수 있습니다.
latestVideos가 50개 미만일 때adExperienceRate도 실제 입력 개수를 분모로 쓰는지 함께 단언하는 편이 안전합니다.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculatorTest.java` around lines 20 - 56, Update the InfluencerInsightCalculatorTest coverage to include the adExperienceRate path as well as the viral rates. In viralRatesUseActualMetricCountWhenLatestVideosAreLessThanFifty, after calling calculate on InfluencerInsightCalculator, add an assertion for response.content().adExperienceRate() to verify it uses the actual number of latestVideos as the denominator when fewer than fifty videos are provided, alongside the existing viral2xRate and viral5xRate checks.
58-87: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win포맷 분석 테스트에서 평균값도 함께 검증해 주세요.
지금은 count만 확인해서 projection 기반 전환 이후 평균 조회수나 평균 참여율 계산이 잘못돼도 테스트가 통과합니다. 이번 리팩터링의 핵심이 projection에서 통계를 직접 계산하는 점이라, long/short의 평균값까지 같이 고정해 두는 게 좋겠습니다.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculatorTest.java` around lines 58 - 87, The format analysis test in InfluencerInsightCalculatorTest only asserts longForm/shortForm counts, so it can miss regressions in projection-based aggregation. Update formatAnalysisUsesRecentThirtyDayProjectionRows to also verify the average metrics computed in InfluencerInsightCalculator.calculate, especially the longForm and shortForm averages derived from VideoFormatStatsProjection, so the test locks down both count and mean calculations.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@src/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculatorTest.java`:
- Around line 20-56: Update the InfluencerInsightCalculatorTest coverage to
include the adExperienceRate path as well as the viral rates. In
viralRatesUseActualMetricCountWhenLatestVideosAreLessThanFifty, after calling
calculate on InfluencerInsightCalculator, add an assertion for
response.content().adExperienceRate() to verify it uses the actual number of
latestVideos as the denominator when fewer than fifty videos are provided,
alongside the existing viral2xRate and viral5xRate checks.
- Around line 58-87: The format analysis test in InfluencerInsightCalculatorTest
only asserts longForm/shortForm counts, so it can miss regressions in
projection-based aggregation. Update
formatAnalysisUsesRecentThirtyDayProjectionRows to also verify the average
metrics computed in InfluencerInsightCalculator.calculate, especially the
longForm and shortForm averages derived from VideoFormatStatsProjection, so the
test locks down both count and mean calculations.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e0f2e379-ce6b-4212-8e60-b81ac9ac4dac
📒 Files selected for processing (6)
src/main/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculator.javasrc/main/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightQueryService.javasrc/main/java/com/example/inflace/domain/video/repository/VideoRepository.javasrc/main/java/com/example/inflace/domain/video/repository/projection/VideoFormatStatsProjection.javasrc/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightCalculatorTest.javasrc/test/java/com/example/inflace/domain/channel/service/insight/InfluencerInsightQueryServiceTest.java
Issue
comment
Summary by CodeRabbit
New Features
Bug Fixes
Tests