hgzero/design/backend/sequence/outer/회의록조회및수정.puml
djeon e1d411e989 외부 시퀀스 설계 가이드 및 설계서 추가
- 외부 시퀀스 설계 가이드 다운로드 (claude/sequence-outer-design.md)
- 외부 시퀀스 설계 디렉토리 생성 (design/backend/sequence/)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 13:23:50 +09:00

124 lines
3.2 KiB
Plaintext

@startuml 회의록조회및수정
!theme mono
title 플로우 6: 회의록 조회 및 수정
actor "Frontend" as FE
participant "API Gateway" as GW
participant "Meeting Service" as MS
participant "Collaboration Service" as CS
participant "Redis" as RD
database "Meeting DB" as MDB
== 회의록 목록 조회 ==
FE -> GW: 회의록 목록 조회 요청\n(필터/정렬/검색 조건)
activate GW
GW -> MS: 목록 조회 요청
activate MS
MS -> RD: 캐시 조회 (Cache-Aside)\nKey: meeting:list:{userId}:{filter}
activate RD
alt Cache Hit
RD --> MS: 캐시 데이터 반환
MS --> GW: 목록 데이터 반환
GW --> FE: 목록 표시
else Cache Miss
RD --> MS: 캐시 없음
deactivate RD
MS -> MDB: DB 조회\n(필터, 정렬, 검색 조건 적용)
activate MDB
MDB --> MS: 목록 데이터
deactivate MDB
MS -> RD: 캐시 저장 (TTL 10분)\nKey: meeting:list:{userId}:{filter}
activate RD
RD --> MS: 저장 완료
deactivate RD
MS --> GW: 목록 데이터 반환
GW --> FE: 목록 표시
end
deactivate MS
deactivate GW
== 회의록 상세 조회 ==
FE -> GW: 회의록 클릭\n회의록 상세 조회 요청
activate GW
GW -> MS: 상세 조회 요청 (meetingId)
activate MS
MS -> RD: 캐시 조회 (Cache-Aside)\nKey: meeting:info:{meetingId}
activate RD
alt Cache Hit
RD --> MS: 캐시 데이터 반환\n(회의 정보, 섹션별 내용, 관련 회의록)
MS --> GW: 상세 데이터 반환
GW --> FE: 상세 정보 표시
else Cache Miss
RD --> MS: 캐시 없음
deactivate RD
MS -> MDB: DB 조회\n(회의 정보, 섹션별 내용, 관련 회의록)
activate MDB
MDB --> MS: 상세 데이터
deactivate MDB
MS -> RD: 캐시 저장 (TTL 10분)\nKey: meeting:info:{meetingId}
activate RD
RD --> MS: 저장 완료
deactivate RD
MS --> GW: 상세 데이터 반환
GW --> FE: 상세 정보 표시
end
deactivate MS
deactivate GW
== 회의록 수정 ==
FE -> GW: 수정 버튼 클릭
activate GW
GW -> MS: 권한 확인 요청
activate MS
MS -> MS: 수정 권한 검증\n(본인 작성 회의록만 수정 가능)
alt 권한 없음
MS --> GW: 권한 오류
GW --> FE: 수정 불가 알림
else 권한 있음
MS --> GW: 권한 확인 완료
GW --> FE: 수정 모드 진입
deactivate GW
FE -> GW: 회의록 수정 내용 전송
activate GW
GW -> MS: 수정 요청
MS -> MDB: 수정 내용 저장\n수정 이력 기록\n(수정자, 수정 시간, 변경 내용)
activate MDB
MDB --> MS: 저장 완료
deactivate MDB
MS -> RD: 캐시 무효화\nKey: meeting:info:{meetingId}
activate RD
RD --> MS: 무효화 완료
deactivate RD
MS ->> CS: 실시간 동기화 요청\n(비동기)
activate CS
CS ->> FE: WebSocket: 모든 참석자에게\n수정 델타 전송\n수정 영역 하이라이트 (3초간)
deactivate CS
MS -> MDB: 새 버전 번호 생성\n이전 버전 보관
activate MDB
MDB --> MS: 버전 관리 완료
deactivate MDB
note over MS: 확정완료 상태였던 경우\n작성중 상태로 변경
MS --> GW: 수정 완료 응답
GW --> FE: 수정 완료 표시
end
deactivate MS
deactivate GW
@enduml