# 데이터 매니저 기반 바인딩

## Content

데이터 매니저 기반 바인딩을 사용하면 바인딩 원본이 데이터 매니저 테이블인 경우 지원되는 SpreadJS 바인딩 시나리오가 동시 작업에 참여할 수 있습니다.
데이터 매니저를 사용하지 않는 바인딩은 동시 작업에 참여하지 않습니다. 여기에는 일반 개체, 개체 배열 및 기타 데이터 매니저가 아닌 원본에 직접 바인딩하는 경우가 포함됩니다.
공동 작업자가 동일한 구조화된 비즈니스 데이터 모델로 작업하고 지원되는 바인딩 상태를 클라이언트 간에 일관되게 유지해야 하는 경우 데이터 매니저 기반 바인딩을 사용하세요.

## 동시 작업 범위

동시 작업 범위는 데이터 매니저를 기반으로 하는 바인딩 시나리오로 제한됩니다.
다음 바인딩 시나리오가 지원됩니다.

* 데이터 매니저 테이블을 사용한 시트 바인딩
* 데이터 매니저 테이블을 사용한 셀 바인딩
* 데이터 매니저 기반 셀 바인딩 원본을 사용한 워크시트 테이블 `bindingPath`
* 데이터 매니저 테이블에 직접 바인딩하는 워크시트 테이블
    데이터 매니저 테이블을 바인딩 원본으로 사용하지 않는 바인딩 시나리오는 동시 작업 범위에 포함되지 않습니다.

## 데이터 매니저를 사용한 시트 바인딩

워크시트를 데이터 매니저 테이블에 바인딩하여 동시 작업에 참여하도록 할 수 있습니다.
이 시나리오에서 시트는 데이터 매니저 테이블의 레코드를 바인딩 원본으로 사용합니다. 바인딩 경로가 있는 셀은 현재 레코드에서 해당 값을 가져옵니다.
이 시나리오는 일반적으로 하나의 레코드에서 필드를 표시하는 폼 형태의 레이아웃, 상세 페이지, 송장 또는 기타 템플릿에 사용됩니다.
일반적인 시트 바인딩 사용법은 [SpreadJS 디자이너의 시트 바인딩](/spreadjs/docs/v19/features/binding/designertemplate)을 참조하세요.

## 데이터 매니저를 사용한 셀 바인딩

셀 바인딩 원본은 데이터 매니저 테이블을 원본으로 사용하여 동시 작업에 참여할 수 있습니다.
이 시나리오에서 각 셀 바인딩 경로는 활성 레코드의 필드를 참조합니다. 활성 레코드 인덱스는 데이터 매니저 기반 셀 바인딩 시나리오의 일부입니다.
일반적인 셀 바인딩 사용법은 [셀 바인딩](/spreadjs/docs/v19/features/binding/bindcells)을 참조하세요.

## 데이터 매니저 기반 셀 바인딩 원본을 사용한 테이블 `bindingPath`

워크시트 테이블은 데이터 매니저 테이블을 기반으로 하는 셀 바인딩 원본과 함께 `bindingPath`를 사용할 수 있습니다.
이는 마스터-세부 정보 레이아웃에 유용합니다. 예를 들어 시트는 하나의 고객 레코드에 바인딩하고, 워크시트 테이블은 해당 고객의 주문이나 프로젝트와 같은 배열 필드에 바인딩할 수 있습니다.
일반적인 테이블 `bindingPath` 사용법은 [테이블 바인딩](/spreadjs/docs/v19/features/tablegen/tablebind)을 참조하세요.

## 데이터 매니저를 사용한 워크시트 테이블 바인딩

워크시트 테이블을 데이터 매니저 테이블에 직접 바인딩하여 동시 작업에 참여하도록 할 수 있습니다.
동시 작업 동작은 데이터 매니저 테이블의 데이터 원본 유형에 따라 달라집니다.

* **로컬 데이터** — 지원되는 테이블 보기, 편집 및 바인딩 영역 작업이 동시 작업에 참여할 수 있습니다.
* **원격 데이터** — 동시 작업은 바인딩 구성, 테이블 범위 및 관련 테이블 상태를 동기화합니다. 원격 데이터의 일관성은 비즈니스 애플리케이션에서 제어합니다.
    자세한 내용은 데이터 매니저를 사용한 워크시트 테이블 바인딩을 참조하세요.

## 데이터 원본 범위

데이터 매니저 기반 바인딩의 동시 작업은 기본 데이터 매니저 테이블에 따라 달라집니다.

### 로컬 데이터

데이터 매니저 테이블이 JSON 기반 인메모리 로컬 데이터를 사용하는 경우 지원되는 바인딩 상태 및 데이터 변경 사항이 동시 작업에 참여할 수 있습니다.

### 원격 데이터

데이터 매니저 테이블이 원격 데이터를 사용하는 경우 원격 데이터 원본 자체는 동시 작업 시스템에 의해 동기화되지 않습니다.
SpreadJS는 지원되는 바인딩 구성 및 관련 워크시트 테이블 상태를 동기화할 수 있지만, 다음 항목은 비즈니스 애플리케이션에서 처리해야 합니다.

* 원격 데이터 일관성
* 백엔드 지속성
* 변경 알림
* 새로 고침 시점
* 테이블 레이아웃 동기화 결정
    원격 워크시트 테이블 바인딩 동작에 대한 자세한 내용은 [데이터 매니저를 사용한 워크시트 테이블 바인딩](/spreadjs/docs/v19/spreadjs-collaboration-server/spreadjs-sheets-collaboration/collaboration-capability/data-manager-based-model/datamanager-based-binding/worksheet-table-binding-with-datamanager)을 참조하세요.