@startuml 대시보드조회 !theme mono title 대시보드조회 외부 시퀀스 actor "사용자" as User participant "Web App" as Frontend participant "API Gateway" as Gateway participant "Meeting Service" as Meeting database "Redis Cache" as Cache database "Meeting DB" as MeetingDB User -> Frontend: 대시보드 접근 activate Frontend Frontend -> Gateway: GET /api/meetings/dashboard activate Gateway Gateway -> Meeting: GET /dashboard activate Meeting ' 캐시 조회 Meeting -> Cache: GET dashboard:{userId} activate Cache Cache --> Meeting: 캐시 조회 결과 deactivate Cache alt Cache Hit Meeting -> Meeting: 캐시 데이터 반환 else Cache Miss Meeting -> MeetingDB: 대시보드 데이터 조회\n- 예정된 회의 목록\n- 진행 중 Todo 목록\n- 최근 회의록 목록\n- 공유받은 회의록 목록\n- 통계 정보 activate MeetingDB MeetingDB --> Meeting: 조회 결과 deactivate MeetingDB Meeting -> Cache: SET dashboard:{userId}\n(TTL: 5분) activate Cache Cache --> Meeting: 캐시 저장 완료 deactivate Cache end Meeting --> Gateway: 대시보드 데이터 응답\n{\n "upcomingMeetings": [...],\n "activeTodos": [...],\n "recentMinutes": [...],\n "sharedMinutes": [...],\n "statistics": {...}\n} deactivate Meeting Gateway --> Frontend: 200 OK\n대시보드 데이터 deactivate Gateway Frontend -> Frontend: 대시보드 화면 렌더링\n- 예정된 회의 표시\n- Todo 목록 표시\n- 최근/공유 회의록 표시\n- 통계 차트 표시 Frontend --> User: 대시보드 화면 표시 deactivate Frontend @enduml