mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 12:36:23 +00:00
- 7개 외부 시퀀스 설계서 PlantUML 문법 오류 수정 완료 **주요 수정 사항**: 1. 비동기 화살표 수정 - `->>` → `->` (동기 메시지) - `-->>` → `-->` (응답 메시지) 2. 캐시 호출 화살표 수정 - `-.->` → `-->` (응답 화살표) 3. note 블록 수정 - 단일 라인 `note right:` → 블록 형태로 변경 4. activate/deactivate 최적화 - 비동기 이벤트 처리에서 불필요한 activate/deactivate 제거 **수정된 파일**: - Todo완료및회의록반영.puml - 대시보드조회.puml - 회의록공유.puml - 회의록상세조회및수정.puml - 회의시작및실시간회의록작성.puml - 회의예약및참석자초대.puml - 회의종료및최종확정.puml **검증 결과**: ✅ 모든 화살표가 PlantUML 표준 문법 준수 (`->`, `-->`) ✅ 잘못된 화살표 문법 모두 제거 (`->>`, `-->>`, `-.->`) ✅ activate/deactivate 쌍 정상 매칭 ✅ PlantUML 렌더링 오류 해결 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
135 lines
4.3 KiB
Plaintext
135 lines
4.3 KiB
Plaintext
@startuml 회의록상세조회및수정
|
|
!theme mono
|
|
|
|
title 회의록상세조회및수정 외부 시퀀스
|
|
|
|
actor "사용자" as User
|
|
participant "Web App" as Frontend
|
|
participant "API Gateway" as Gateway
|
|
participant "Meeting Service" as Meeting
|
|
participant "AI Service" as AI
|
|
database "Redis Cache" as Cache
|
|
database "Meeting DB" as MeetingDB
|
|
participant "WebSocket" as WS
|
|
|
|
== 회의록 상세 조회 ==
|
|
|
|
User -> Frontend: 회의록 클릭
|
|
activate Frontend
|
|
|
|
Frontend -> Gateway: GET /api/minutes/{minutesId}
|
|
activate Gateway
|
|
|
|
Gateway -> Meeting: GET /minutes/{minutesId}
|
|
activate Meeting
|
|
|
|
' 캐시 조회 (회의록 기본 정보)
|
|
Meeting --> Cache: GET minutes:{minutesId}
|
|
activate Cache
|
|
Cache --> Meeting: 캐시 조회 결과
|
|
deactivate Cache
|
|
|
|
alt Cache Hit
|
|
Meeting -> Meeting: 캐시 데이터 사용
|
|
else Cache Miss
|
|
Meeting -> MeetingDB: 회의록 상세 조회\n- 회의 기본 정보\n- 섹션별 상세 내용\n- 참석자 목록\n- Todo 목록\n- 검증 상태
|
|
activate MeetingDB
|
|
MeetingDB --> Meeting: 회의록 데이터
|
|
deactivate MeetingDB
|
|
|
|
Meeting --> Cache: SET minutes:{minutesId}\n(TTL: 10분)
|
|
activate Cache
|
|
Cache --> Meeting: 캐시 저장 완료
|
|
deactivate Cache
|
|
end
|
|
|
|
' 관련 회의록 검색 (비동기, 선택적)
|
|
Meeting -> AI: POST /ai/related-minutes\n{\n "minutesId": "{minutesId}",\n "threshold": 0.7\n}
|
|
activate AI
|
|
AI -> AI: 벡터 유사도 검색\n- 회의 주제 임베딩\n- 과거 회의록 비교\n- 유사도 70%+ 필터링
|
|
|
|
AI --> Meeting: 관련 회의록 목록\n(최대 3개, 관련도순)
|
|
deactivate AI
|
|
|
|
Meeting --> Gateway: 회의록 상세 데이터 응답\n{\n "minutesId": "...",\n "title": "...",\n "meetingInfo": {...},\n "sections": [...],\n "relatedMinutes": [...],\n "participants": [...],\n "todos": [...],\n "verificationStatus": {...}\n}
|
|
deactivate Meeting
|
|
|
|
Gateway --> Frontend: 200 OK\n회의록 상세 데이터
|
|
deactivate Gateway
|
|
|
|
Frontend -> Frontend: 회의록 상세 화면 렌더링\n- 회의 기본 정보 표시\n- 섹션별 내용 표시\n- 관련 회의록 표시\n- Todo 목록 표시\n- 수정 권한 확인
|
|
|
|
Frontend --> User: 회의록 상세 화면 표시
|
|
deactivate Frontend
|
|
|
|
== 회의록 수정 ==
|
|
|
|
User -> Frontend: 수정 버튼 클릭
|
|
activate Frontend
|
|
|
|
Frontend -> Frontend: 수정 화면으로 전환\n- 마크다운 에디터 활성화\n- WebSocket 연결 준비
|
|
|
|
' WebSocket 연결 (실시간 동기화)
|
|
Frontend -> WS: WebSocket 연결\n(회의록 ID, 사용자 정보)
|
|
activate WS
|
|
WS --> Frontend: 연결 완료
|
|
deactivate WS
|
|
|
|
Frontend --> User: 수정 가능 상태
|
|
deactivate Frontend
|
|
|
|
User -> Frontend: 내용 수정 입력
|
|
activate Frontend
|
|
|
|
Frontend -> Frontend: 자동 저장 타이머 시작\n(30초 간격)
|
|
|
|
note over Frontend
|
|
사용자가 계속 수정 중...
|
|
30초마다 자동 저장
|
|
end note
|
|
|
|
Frontend -> Gateway: PUT /api/minutes/{minutesId}\n{\n "sections": [...],\n "modifiedBy": "userId",\n "timestamp": "...",\n "delta": {...}\n}
|
|
activate Gateway
|
|
|
|
Gateway -> Meeting: PUT /minutes/{minutesId}
|
|
activate Meeting
|
|
|
|
Meeting -> Meeting: 수정 권한 검증\n- 작성자 확인\n- 잠금 섹션 확인
|
|
|
|
alt 권한 없음
|
|
Meeting --> Gateway: 403 Forbidden
|
|
Gateway --> Frontend: 수정 권한 없음
|
|
Frontend --> User: 오류 메시지 표시
|
|
else 권한 있음
|
|
Meeting -> MeetingDB: 회의록 수정\n- 수정 내용 저장\n- 버전 관리 (이전 버전 보관)\n- 수정 이력 기록\n- 상태 변경 (확정완료 → 작성중)
|
|
activate MeetingDB
|
|
MeetingDB --> Meeting: 수정 완료
|
|
deactivate MeetingDB
|
|
|
|
' 캐시 무효화
|
|
Meeting --> Cache: DEL minutes:{minutesId}
|
|
activate Cache
|
|
Cache --> Meeting: 캐시 삭제 완료
|
|
deactivate Cache
|
|
|
|
' 실시간 동기화 (WebSocket)
|
|
Meeting -> WS: 수정 델타 전송\n{\n "minutesId": "...",\n "modifiedBy": "...",\n "delta": {...},\n "timestamp": "..."\n}
|
|
activate WS
|
|
WS -> Frontend: 실시간 수정 반영\n(다른 참석자들에게)
|
|
deactivate WS
|
|
|
|
Meeting --> Gateway: 수정 완료 응답\n{\n "version": "...",\n "modifiedAt": "...",\n "status": "작성중"\n}
|
|
deactivate Meeting
|
|
|
|
Gateway --> Frontend: 200 OK\n수정 완료
|
|
deactivate Gateway
|
|
|
|
Frontend -> Frontend: 수정 상태 업데이트\n- "저장됨" 표시\n- 수정 시간 갱신
|
|
|
|
Frontend --> User: 수정 반영 완료
|
|
end
|
|
|
|
deactivate Frontend
|
|
|
|
@enduml
|