mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 17:26:23 +00:00
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
7.6 KiB
7.6 KiB
Analytics Service 패키지 구조도
analytics-service/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── kt/
│ │ │ └── event/
│ │ │ └── analytics/
│ │ │ ├── AnalyticsServiceApplication.java
│ │ │ │
│ │ │ ├── controller/
│ │ │ │ ├── AnalyticsDashboardController.java
│ │ │ │ ├── ChannelAnalyticsController.java
│ │ │ │ ├── TimelineAnalyticsController.java
│ │ │ │ └── RoiAnalyticsController.java
│ │ │ │
│ │ │ ├── service/
│ │ │ │ ├── AnalyticsService.java
│ │ │ │ ├── ChannelAnalyticsService.java
│ │ │ │ ├── TimelineAnalyticsService.java
│ │ │ │ ├── RoiAnalyticsService.java
│ │ │ │ ├── ExternalChannelService.java
│ │ │ │ └── ROICalculator.java
│ │ │ │
│ │ │ ├── repository/
│ │ │ │ ├── EventStatsRepository.java
│ │ │ │ ├── ChannelStatsRepository.java
│ │ │ │ └── TimelineDataRepository.java
│ │ │ │
│ │ │ ├── entity/
│ │ │ │ ├── EventStats.java
│ │ │ │ ├── ChannelStats.java
│ │ │ │ └── TimelineData.java
│ │ │ │
│ │ │ ├── dto/
│ │ │ │ ├── request/
│ │ │ │ │ └── (쿼리 파라미터는 Controller에서 직접 처리)
│ │ │ │ │
│ │ │ │ └── response/
│ │ │ │ ├── AnalyticsDashboardResponse.java
│ │ │ │ ├── ChannelAnalyticsResponse.java
│ │ │ │ ├── TimelineAnalyticsResponse.java
│ │ │ │ ├── RoiAnalyticsResponse.java
│ │ │ │ ├── ChannelSummary.java
│ │ │ │ ├── ChannelAnalytics.java
│ │ │ │ ├── ChannelMetrics.java
│ │ │ │ ├── ChannelPerformance.java
│ │ │ │ ├── ChannelCosts.java
│ │ │ │ ├── ChannelComparison.java
│ │ │ │ ├── TimelineDataPoint.java
│ │ │ │ ├── TrendAnalysis.java
│ │ │ │ ├── PeakTimeInfo.java
│ │ │ │ ├── InvestmentDetails.java
│ │ │ │ ├── RevenueDetails.java
│ │ │ │ ├── RoiCalculation.java
│ │ │ │ ├── CostEfficiency.java
│ │ │ │ ├── RevenueProjection.java
│ │ │ │ ├── PeriodInfo.java
│ │ │ │ ├── AnalyticsSummary.java
│ │ │ │ ├── SocialInteractionStats.java
│ │ │ │ ├── VoiceCallStats.java
│ │ │ │ └── RoiSummary.java
│ │ │ │
│ │ │ ├── messaging/
│ │ │ │ ├── consumer/
│ │ │ │ │ ├── EventCreatedConsumer.java
│ │ │ │ │ ├── ParticipantRegisteredConsumer.java
│ │ │ │ │ └── DistributionCompletedConsumer.java
│ │ │ │ │
│ │ │ │ └── event/
│ │ │ │ ├── EventCreatedEvent.java
│ │ │ │ ├── ParticipantRegisteredEvent.java
│ │ │ │ └── DistributionCompletedEvent.java
│ │ │ │
│ │ │ ├── client/
│ │ │ │ ├── WooriTVClient.java
│ │ │ │ ├── GenieTVClient.java
│ │ │ │ ├── RingoBizClient.java
│ │ │ │ └── SNSClient.java
│ │ │ │
│ │ │ └── config/
│ │ │ ├── SecurityConfig.java
│ │ │ ├── SwaggerConfig.java
│ │ │ ├── RedisConfig.java
│ │ │ ├── KafkaConsumerConfig.java
│ │ │ ├── FeignConfig.java
│ │ │ └── Resilience4jConfig.java
│ │ │
│ │ └── resources/
│ │ ├── application.yml
│ │ └── logback-spring.xml
│ │
│ └── test/
│ └── java/
│ └── com/
│ └── kt/
│ └── event/
│ └── analytics/
│ └── (테스트 코드 - 현재 단계에서는 작성하지 않음)
│
└── build.gradle
패키지 설명
controller
- AnalyticsDashboardController: 통합 대시보드 조회 API
- ChannelAnalyticsController: 채널별 성과 분석 API
- TimelineAnalyticsController: 시간대별 추이 분석 API
- RoiAnalyticsController: ROI 상세 분석 API
service
- AnalyticsService: 대시보드 데이터 통합 및 조회
- ChannelAnalyticsService: 채널별 분석 로직
- TimelineAnalyticsService: 시간대별 분석 로직
- RoiAnalyticsService: ROI 계산 및 분석 로직
- ExternalChannelService: 외부 채널 API 호출 및 Circuit Breaker 적용
- ROICalculator: ROI 계산 유틸리티
repository
- EventStatsRepository: 이벤트 통계 데이터 저장소
- ChannelStatsRepository: 채널별 통계 데이터 저장소
- TimelineDataRepository: 시간대별 데이터 저장소
entity
- EventStats: 이벤트 통계 엔티티
- ChannelStats: 채널 통계 엔티티
- TimelineData: 시간대별 데이터 엔티티
dto/response
- API 응답 DTO 클래스들
messaging
- consumer: Kafka Event Consumer 클래스
- event: Kafka Event DTO 클래스
client
- FeignClient: 외부 API 연동 클라이언트 (우리동네TV, 지니TV, 링고비즈, SNS)
config
- SecurityConfig: Spring Security 설정
- SwaggerConfig: Swagger/OpenAPI 설정
- RedisConfig: Redis 캐시 설정
- KafkaConsumerConfig: Kafka Consumer 설정
- FeignConfig: OpenFeign 설정
- Resilience4jConfig: Circuit Breaker 설정
아키텍처 패턴
- Layered Architecture 적용
- Service 계층에 Interface 사용