hgzero/design/backend/sequence/outer/대시보드조회.puml
Minseo-Jo 9794926651 대시보드 조회 시퀀스 구조 개선
- 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>
2025-10-23 10:25:47 +09:00

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