mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 09:06:24 +00:00
- 외부 시퀀스 설계 가이드 다운로드 (claude/sequence-outer-design.md) - 외부 시퀀스 설계 디렉토리 생성 (design/backend/sequence/) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
124 lines
3.2 KiB
Plaintext
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
|