mirror of
https://github.com/hwanny1128/HGZero.git
synced 2026-06-13 16:29:11 +00:00
PlantUML 가이드 및 검사 도구 추가
- claude/plantuml-guide.md: PlantUML 문법 검사 가이드 추가 - think/es/: 신규 디렉토리 추가 - tools/check-plantuml.sh: PlantUML 문법 검사 스크립트 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
@startuml 04-협업검증
|
||||
!theme mono
|
||||
|
||||
title 04. 실시간 협업 검증 - 이벤트스토밍 플로우
|
||||
|
||||
actor "회의 참석자 A" as UserA
|
||||
actor "회의 참석자 B" as UserB
|
||||
participant "회의록 시스템" as System
|
||||
participant "웹소켓 서버" as WebSocket
|
||||
participant "버전 관리" as Version
|
||||
|
||||
== 참석자 A가 회의록 수정 ==
|
||||
|
||||
UserA -> System : **커맨드**: 회의록 수정하기\n(데이터: 회의록 ID, 수정 내용, 수정자, 타임스탬프)
|
||||
activate System
|
||||
System -> System : 수정 내용 검증
|
||||
System --> UserA : **이벤트**: 참석자가 회의록을 수정함\n(데이터: 수정 ID, 수정자, 수정 내용, 수정 위치)
|
||||
deactivate System
|
||||
|
||||
System -> Version : 수정 이력 저장\n(데이터: 수정 ID, 버전 정보)
|
||||
activate Version
|
||||
Version --> System : 버전 저장 완료
|
||||
deactivate Version
|
||||
|
||||
note right of System
|
||||
**Policy/Rule**:
|
||||
회의록 수정 시 →
|
||||
웹소켓을 통해 모든 참석자에게
|
||||
즉시 동기화
|
||||
end note
|
||||
|
||||
== 실시간 동기화 ==
|
||||
|
||||
System -> WebSocket : **커맨드**: 수정 동기화하기\n(데이터: 수정 델타, 버전 정보)
|
||||
activate WebSocket
|
||||
WebSocket -> UserB : 실시간 동기화 전송
|
||||
WebSocket --> System : **이벤트**: 수정 사항이 동기화됨\n(데이터: 동기화 시간, 영향받은 참석자 목록)
|
||||
deactivate WebSocket
|
||||
|
||||
UserB -> UserB : 화면에 수정 사항 반영
|
||||
|
||||
== 동시 수정 충돌 발생 ==
|
||||
|
||||
UserB -> System : **커맨드**: 회의록 수정하기\n(동일 위치 수정 시도)
|
||||
activate System
|
||||
System -> System : 충돌 감지
|
||||
System --> System : **이벤트**: 충돌이 감지됨\n(데이터: 충돌 ID, 충돌 위치, 관련 수정자)
|
||||
deactivate System
|
||||
|
||||
note right of System
|
||||
**Policy/Rule**:
|
||||
동시 수정 발생 시 →
|
||||
최종 수정이 우선 (Last Write Wins)
|
||||
또는 충돌 알림
|
||||
end note
|
||||
|
||||
== 충돌 해결 ==
|
||||
|
||||
System -> WebSocket : 충돌 알림 전송
|
||||
WebSocket -> UserB : 충돌 알림 표시
|
||||
|
||||
UserB -> System : **커맨드**: 충돌 해결하기\n(데이터: 충돌 내용, 해결 방법)
|
||||
activate System
|
||||
System -> System : 충돌 해결 처리
|
||||
System --> UserB : **이벤트**: 충돌이 해결됨\n(데이터: 해결 방법, 최종 내용)
|
||||
deactivate System
|
||||
|
||||
System -> WebSocket : 해결된 내용 동기화
|
||||
WebSocket -> UserA : 최종 내용 전송
|
||||
|
||||
== 검증 완료 ==
|
||||
|
||||
UserA -> System : **커맨드**: 검증 완료 표시하기\n(데이터: 검증자, 검증 시간)
|
||||
activate System
|
||||
System -> System : 검증 상태 업데이트
|
||||
System --> UserA : **이벤트**: 검증이 완료됨\n(데이터: 검증자, 검증 상태, 완료 시간)
|
||||
deactivate System
|
||||
|
||||
note right of System
|
||||
**Policy/Rule**:
|
||||
주요 섹션 검증 완료 시 →
|
||||
해당 섹션 잠금 가능
|
||||
end note
|
||||
|
||||
System -> WebSocket : 검증 완료 알림
|
||||
WebSocket -> UserB : 검증 상태 동기화
|
||||
|
||||
note over UserA, Version
|
||||
**Actor**: 회의 참석자들, 회의록 작성자
|
||||
**External System**: 웹소켓 서버 (실시간 동기화), 버전 관리 시스템
|
||||
**커맨드 데이터**: 수정 내용, 수정자, 충돌 해결 방법
|
||||
**이벤트 데이터**: 수정 이력, 동기화 상태, 검증 완료
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user