mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 10:16:24 +00:00
70 lines
2.2 KiB
Plaintext
70 lines
2.2 KiB
Plaintext
@startuml 대시보드조회
|
|
!theme mono
|
|
|
|
title 대시보드조회 외부 시퀀스
|
|
|
|
actor "사용자" as User
|
|
participant "Web App" as Frontend
|
|
participant "API Gateway" as Gateway
|
|
participant "User Service" as UserService
|
|
database "Redis Cache" as Cache
|
|
database "User DB" as UserDB
|
|
|
|
note over Gateway
|
|
라우팅 규칙:
|
|
/api/meetings/** → Meeting Service
|
|
/api/minutes/** → Meeting Service
|
|
/api/dashboard → User Service
|
|
/api/notifications/** → Notification Service
|
|
/api/auth/** → User Service
|
|
/api/todos/** → Meeting Service
|
|
end note
|
|
|
|
User -> Frontend: 대시보드 접근
|
|
activate Frontend
|
|
|
|
Frontend -> Gateway: GET /api/dashboard?\npage=1&size=10&sort=createdAt,desc
|
|
note right
|
|
페이지네이션 파라미터:
|
|
- page: 페이지 번호 (기본값: 1)
|
|
- size: 페이지 크기 (기본값: 10)
|
|
- sort: 정렬 기준 (기본값: createdAt,desc)
|
|
end note
|
|
activate Gateway
|
|
|
|
Gateway -> UserService: GET /dashboard?\npage=1&size=10&sort=createdAt,desc
|
|
activate UserService
|
|
|
|
' 캐시 조회
|
|
UserService -> Cache: GET dashboard:{userId}
|
|
activate Cache
|
|
Cache --> UserService: 캐시 조회 결과
|
|
deactivate Cache
|
|
|
|
alt Cache Hit
|
|
UserService -> UserService: 캐시 데이터 반환
|
|
else Cache Miss
|
|
UserService -> UserDB: 대시보드 데이터 조회\n- 예정된 회의 목록\n- 진행 중 Todo 목록\n- 최근 회의록 목록\n- 통계 정보
|
|
activate UserDB
|
|
UserDB --> UserService: 조회 결과
|
|
deactivate UserDB
|
|
|
|
UserService -> Cache: SET dashboard:{userId}\n(TTL: 5분)
|
|
activate Cache
|
|
Cache --> UserService: 캐시 저장 완료
|
|
deactivate Cache
|
|
end
|
|
|
|
UserService --> Gateway: 대시보드 데이터 응답\n{\n "upcomingMeetings": [...],\n "activeTodos": [...],\n "recentMinutes": [...],\n "statistics": {...},\n "pagination": {\n "page": 1,\n "size": 10,\n "totalElements": 45,\n "totalPages": 5,\n "hasNext": true\n }\n}
|
|
deactivate UserService
|
|
|
|
Gateway --> Frontend: 200 OK\n대시보드 데이터 + 페이지네이션 정보
|
|
deactivate Gateway
|
|
|
|
Frontend -> Frontend: 대시보드 화면 렌더링\n- 예정된 회의 표시\n- Todo 목록 표시\n- 최근 회의록 표시\n- 통계 차트 표시
|
|
|
|
Frontend --> User: 대시보드 화면 표시
|
|
deactivate Frontend
|
|
|
|
@enduml
|