hgzero/design/backend/sequence/outer/회의록공유.puml
kimjh 18f2416414 외부 시퀀스 설계 일관성 개선
- API 경로 통일: /meetings → /minutes 리소스 기반 설계
- HTTP 메서드 표준화: 부분 수정 시 PUT → PATCH 변경
- 캐시 키 명명 규칙 통일: minutes:detail:, dashboard:, todo: 등
- 이벤트명 용어 통일: Transcript* → Minutes* 도메인 용어 적용
- DB 테이블명 정확성 개선: TranscriptVersion → MinutesVersion

수정 파일:
- 회의종료및최종확정.puml
- 회의록공유.puml
- Todo완료및회의록반영.puml
- 회의록상세조회및수정.puml

일관성 점수: 78/100 → 95/100

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 17:26:57 +09:00

64 lines
2.1 KiB
Plaintext

@startuml
!theme mono
title 회의록공유 플로우 (UFR-MEET-060)
actor "회의록 작성자" as User
participant "Web App" as Web
participant "API Gateway" as Gateway
participant "Meeting Service" as Meeting
participant "Redis Cache" as Redis
participant "Azure Event Hubs" as EventHub
participant "Notification Service" as Notification
== 회의록 공유 설정 ==
User -> Web: 공유 버튼 클릭
activate Web
Web -> Web: 공유 대상 및 권한 설정 입력\n(읽기 전용/댓글 가능/편집 가능)
Web -> Gateway: POST /api/minutes/{minutesId}/share\n(공유 설정 정보)
activate Gateway
Gateway -> Gateway: JWT 토큰 검증
Gateway -> Meeting: 회의록 공유 요청
activate Meeting
== 공유 링크 생성 ==
Meeting -> Meeting: 공유 링크 생성\n(고유 URL, 권한, 유효기간)
Meeting -> Meeting: 공유 정보 DB 저장\n(공유 시간, 대상, 권한)
== Redis 캐시 무효화 ==
Meeting -> Redis: 회의록 정보 캐시 무효화\n(minutes:info:{minutesId})
activate Redis
Redis --> Meeting: 캐시 삭제 완료
deactivate Redis
== 이벤트 발행 ==
Meeting -> EventHub: MinutesShared 이벤트 발행\n(minutesId, 참석자 목록, 공유 URL)
activate EventHub
EventHub --> Meeting: 이벤트 발행 성공
deactivate EventHub
Meeting --> Gateway: 공유 링크 생성 성공\n(공유 URL)
deactivate Meeting
Gateway --> Web: 공유 링크 반환
deactivate Gateway
Web --> User: 공유 링크 표시
deactivate Web
== 알림 발송 ==
EventHub -> Notification: MinutesShared 이벤트 구독
activate Notification
Notification -> Notification: 이메일 템플릿 생성\n(회의 제목, 공유 URL, 권한 정보)
Notification -> Notification: 참석자 전원에게\n이메일 발송
Notification --> EventHub: 알림 발송 완료
deactivate Notification
== 다음 회의 일정 자동 등록 (옵션) ==
note over Meeting
다음 회의 일정이 회의록에
언급된 경우에만 수행
end note
Meeting -> Meeting: 회의록 내용 분석\n(다음 회의 일정 추출)
Meeting -> Meeting: 캘린더 자동 등록\n(회의 제목, 날짜, 참석자)
@enduml