[]
데이터 매니저 기반 협업 모델은 SpreadJS 데이터 매니저에서 관리하는 테이블 상태가 실시간 협업에 어떻게 참여하는지를 정의합니다.
데이터 매니저는 프런트엔드 데이터 모델링 및 전송 계층입니다.
이를 통해 애플리케이션은 다음 작업을 수행할 수 있습니다.
테이블 정의
데이터 원본 구성
테이블 간 관계 설정
뷰 정의
로컬 또는 원격 데이터 작업 조정
데이터 매니저는 구조화된 테이블 상태를 관리합니다.
직접적인 사용자 상호 작용 기능은 제공하지 않습니다.
현재 데이터 매니저 기반 협업은 테이블 시트를 통해서만 지원됩니다.
협업은 다음 조건을 만족하는 상태만 동기화합니다.
데이터 매니저 런타임 내에 저장되는 상태
직렬화 가능한 상태
클라이언트 간 결정적으로 재생 가능한 상태
외부 시스템에 위임된 상태는 동기화되지 않습니다.
다음과 같은 테이블 수준 상태가 동기화됩니다.
테이블 정의
열 정의 및 메타데이터
뷰 정의
관계
계층 구조 구성
테이블 옵션 및 레이아웃 구성
직렬화 가능한 데이터 원본 구성
위 구조 상태에 대한 모든 변경 사항은 협업에 참여합니다.
데이터 집합 변경 사항은 테이블이 JSON 기반 메모리 내 데이터를 사용하는 data 옵션을 사용할 때만 동기화됩니다.
지원 형식:
data (JSON 개체)
이 모드에서는 다음 데이터 집합 변경 사항이 협업에 참여합니다.
레코드 값 업데이트
레코드 추가 및 삭제
열 구조 변경
계층 구조 변경
행 고정 및 고정 해제 상태
이 모드에서는 데이터 집합 상태가 데이터 매니저에 의해 완전히 관리되며 협업 스냅샷에 포함됩니다.
다음 시나리오는 데이터 집합 동기화에 참여하지 않습니다.
URL 기반 전송 옵션을 사용하는 dataSourceOption.remote( autoSync: true 포함)를 사용하는 경우:
테이블 편집은 지원됩니다.
데이터 매니저는 변경 사항을 원격 서비스로 전송합니다.
데이터 집합 변경 사항은 협업 시스템에 의해 동기화되지 않습니다.
데이터 일관성은 백엔드 서비스에 위임됩니다.
구성 상태는 직렬화 가능하다면 계속 동기화됩니다.
다음과 같은 함수 기반 처리기를 사용하는 경우:
GC.Data.RemoteReadHandler
GC.Data.RemoteChangeHandler구성 정보를 직렬화할 수 없습니다.
해당 테이블은 협업에 참여하지 않습니다.
데이터 집합 콘텐츠가 CSV 또는 XML 형식으로 초기화된 경우:
구성 상태는 동기화됩니다.
데이터 집합 변경 사항은 동기화되지 않습니다.
이 모델에서는 현재 사용자 표시(Presence) 기능(선택 영역 또는 커서 표시 등)을 지원하지 않습니다.
동기화되는 상태에 대해서는 실행 취소를 지원합니다.
일관성을 유지하기 위해 원격 작업을 수신하면 로컬 실행 취소 스택이 초기화됩니다.
대규모 데이터 집합 상태는 스냅샷 크기 최적화를 위해 조각(Fragment)으로 분리하여 저장될 수 있습니다.