add outer/inner sequence
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
@startuml analytics-대시보드조회-캐시히트
|
||||
!theme mono
|
||||
|
||||
title Analytics Service - 대시보드 조회 (Cache HIT) 내부 시퀀스\n(UFR-ANAL-010: 실시간 성과분석 대시보드 조회)
|
||||
|
||||
participant "AnalyticsController" as Controller
|
||||
participant "AnalyticsService" as Service
|
||||
participant "CacheService" as Cache
|
||||
participant "Redis" as Redis
|
||||
|
||||
-> Controller: GET /api/events/{id}/analytics\n+ Authorization: Bearer {token}
|
||||
activate Controller
|
||||
|
||||
Controller -> Service: getDashboardData(eventId, userId)
|
||||
activate Service
|
||||
|
||||
note right of Service
|
||||
**입력 검증**
|
||||
- eventId: UUID 형식 검증
|
||||
- userId: JWT에서 추출
|
||||
- 권한 확인: 매장 소유자 여부
|
||||
end note
|
||||
|
||||
Service -> Cache: get("analytics:dashboard:{eventId}")
|
||||
activate Cache
|
||||
|
||||
note right of Cache
|
||||
**Cache-Aside 패턴**
|
||||
- Redis GET 호출
|
||||
- Cache Key 구조:
|
||||
analytics:dashboard:{eventId}
|
||||
- TTL: 300초 (5분)
|
||||
end note
|
||||
|
||||
Cache -> Redis: GET analytics:dashboard:{eventId}
|
||||
activate Redis
|
||||
|
||||
Redis --> Cache: **Cache HIT**\n캐시된 데이터 반환\n{\n totalParticipants: 1234,\n totalViews: 17200,\n roi: 250,\n channelStats: [...],\n lastUpdated: "2025-10-22T10:30:00Z"\n}
|
||||
deactivate Redis
|
||||
|
||||
Cache --> Service: Dashboard 데이터 (JSON)
|
||||
deactivate Cache
|
||||
|
||||
note right of Service
|
||||
**응답 데이터 구조**
|
||||
- 4개 요약 카드
|
||||
* 총 참여자 수, 달성률
|
||||
* 총 노출 수, 증감률
|
||||
* 예상 ROI, 업종 평균 대비
|
||||
* 매출 증가율
|
||||
- 채널별 성과
|
||||
- 시간대별 참여 추이
|
||||
- 참여자 프로필 분석
|
||||
- 비교 분석 (업종 평균, 이전 이벤트)
|
||||
end note
|
||||
|
||||
Service --> Controller: DashboardResponse\n(200 OK)
|
||||
deactivate Service
|
||||
|
||||
Controller --> : 200 OK\nDashboard Data (JSON)
|
||||
deactivate Controller
|
||||
|
||||
note over Controller, Redis
|
||||
**Cache HIT 시나리오 성능**
|
||||
- 응답 시간: 약 0.5초
|
||||
- Redis 조회 시간: 0.01초
|
||||
- 직렬화/역직렬화: 0.05초
|
||||
- HTTP 오버헤드: 0.44초
|
||||
- 예상 히트율: 95%
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user