Skip to content

실시간 공동 편집

Live Mode에서 활성화되는 실시간 협업 기능을 설명합니다.

Awareness (존재 인식)

Live Mode에서는 같은 다이어그램을 편집하고 있는 모든 사용자가 Awareness 정보를 공유합니다.

공유되는 정보

정보 설명
사용자 이름 프로필에 등록된 이름
아바타 색상 사용자별 고유 색상 (자동 배정)
커서 위치 캔버스 위의 마우스 위치
선택 영역 현재 선택한 엔터티 목록
이동 중인 노드 드래그 중인 엔터티의 실시간 위치

사용자 목록 (Facepile)

상단 바에 현재 접속 중인 사용자 목록이 **아바타**로 표시됩니다. 각 아바타에는 고유 색상이 부여되어 캔버스의 커서 색상과 일치합니다.

충돌 해결

ThinkERD는 동시 편집 시 충돌을 **자동으로 해결**합니다. 여러 사용자가 같은 요소를 동시에 수정해도 데이터 손실 없이 병합됩니다.

자동 병합 규칙

상황 동작
두 사용자가 다른 엔터티 편집 독립 적용 (충돌 없음)
두 사용자가 같은 엔터티의 다른 속성 편집 각각 반영됨
두 사용자가 같은 속성 동시 수정 마지막 변경이 적용 (last-writer-wins)
엔터티 이동 동시 수행 각 사용자의 최종 위치가 병합됨

데이터 무결성

네트워크 지연이 있어도 **데이터 손실 없이 자동 병합**됩니다. 오프라인 상태에서 편집한 내용도 재접속 시 동기화 됩니다.

세션 관리

Presence Monitor (SSE)

서버에서 SSE(Server-Sent Events) 스트림을 통해 현재 활성 사용자 수를 실시간으로 추적합니다.

상태 의미
sessionCount = 1 혼자 편집 중 (Solo Mode 유지)
sessionCount ≥ 2 다른 사용자 있음 (Live Mode 전환)

같은 사용자의 멀티 세션

같은 사용자가 여러 브라우저나 디바이스에서 접속해도 정상적으로 동작합니다. 각 브라우저 세션은 독립적인 clientId로 관리됩니다.