mirror of
https://github.com/hwanny1128/HGZero.git
synced 2026-06-13 05:59:11 +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>
This commit is contained in:
@@ -7,8 +7,10 @@ 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
|
||||
라우팅 규칙:
|
||||
@@ -44,10 +46,52 @@ deactivate Cache
|
||||
alt Cache Hit
|
||||
UserService -> UserService: 캐시 데이터 반환
|
||||
else Cache Miss
|
||||
UserService -> UserDB: 대시보드 데이터 조회\n- 예정된 회의 목록\n- 진행 중 Todo 목록\n- 최근 회의록 목록\n- 통계 정보
|
||||
activate UserDB
|
||||
UserDB --> UserService: 조회 결과
|
||||
deactivate UserDB
|
||||
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
|
||||
@@ -55,7 +99,7 @@ else Cache Miss
|
||||
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}
|
||||
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대시보드 데이터 + 페이지네이션 정보
|
||||
|
||||
Reference in New Issue
Block a user