mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 23:06:23 +00:00
- inner/user-대시보드조회.puml 삭제 (outer와 중복) - outer/대시보드조회.puml 수정 - Meeting Service 호출 흐름 추가 - MSA 아키텍처 제대로 반영 - 서비스 간 통신 명확화 - inner/meeting-대시보드조회.puml 유지 (Meeting Service 비즈니스 로직) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
114 lines
3.7 KiB
Plaintext
114 lines
3.7 KiB
Plaintext
@startuml 대시보드조회
|
|
!theme mono
|
|
|
|
title 대시보드조회 외부 시퀀스
|
|
|
|
actor "사용자" as User
|
|
participant "Web App" as Frontend
|
|
participant "API Gateway" as Gateway
|
|
participant "User Service" as UserService
|
|
participant "Meeting Service" as MeetingService
|
|
database "Redis Cache" as Cache
|
|
database "User DB" as UserDB
|
|
database "Meeting DB" as MeetingDB
|
|
|
|
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
|
|
par 병렬 데이터 조회
|
|
' Meeting Service 호출
|
|
UserService -> MeetingService: GET /api/v1/dashboard
|
|
note right
|
|
Meeting Service에서 조회:
|
|
- 예정된 회의 목록
|
|
- 진행 중 Todo 목록
|
|
- 최근 회의록 목록
|
|
- 공유받은 회의록
|
|
- 통계 정보
|
|
end note
|
|
activate MeetingService
|
|
MeetingService -> Cache: GET dashboard:{userId}
|
|
activate Cache
|
|
Cache --> MeetingService: 캐시 조회 결과
|
|
deactivate Cache
|
|
|
|
alt Meeting Service 캐시 미존재
|
|
MeetingService -> MeetingDB: 회의/Todo/회의록 데이터 조회
|
|
activate MeetingDB
|
|
MeetingDB --> MeetingService: 조회 결과
|
|
deactivate MeetingDB
|
|
|
|
MeetingService -> Cache: SET dashboard:{userId}\n(TTL: 5분)
|
|
activate Cache
|
|
Cache --> MeetingService: 캐시 저장
|
|
deactivate Cache
|
|
end
|
|
|
|
MeetingService --> UserService: 회의 관련 데이터 응답\n{\n "upcomingMeetings": [...],\n "activeTodos": [...],\n "recentMinutes": [...],\n "sharedMinutes": [...],\n "statistics": {...}\n}
|
|
deactivate MeetingService
|
|
else
|
|
' User Service 자체 데이터 조회
|
|
UserService -> UserDB: 최근 활동 내역 조회
|
|
activate UserDB
|
|
UserDB --> UserService: 활동 내역
|
|
deactivate UserDB
|
|
end
|
|
|
|
UserService -> UserService: 데이터 통합 및 조합
|
|
note right
|
|
대시보드 데이터 구성:
|
|
- Meeting Service 데이터
|
|
- User Service 활동 내역
|
|
- 통합 통계 정보
|
|
end note
|
|
|
|
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 "recentActivities": [...],\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
|