기기 간 데이터 동기화 - Node.js SDK
이 페이지의 내용
Atlas Device Sync 는 클라이언트 애플리케이션과 Atlas App Services 백엔드 간에 데이터를 자동으로 동기화합니다. 클라이언트 기기가 온라인 일 때 동기화는 기기와 백엔드 앱 간 배경 스레드의 데이터를 비동기식으로 동기화합니다.
Device Sync 에는 Flexible Sync와 이전 파티션 기반 동기화 , 이렇게 두 가지 동기화 모드가 있습니다. 새 앱에는 Flexible Sync 모드 를 사용하는 것이 좋습니다. 파티션 기반 동기화 사용에 대한 자세한 내용은 파티션 기반 동기화 - Node.js SDK 를 참조하세요.
클라이언트 애플리케이션에서 동기화를 사용하는 경우 구현이 백엔드 앱 구성에서 선택한 동기화 모드와 일치해야 합니다. 애플리케이션에 동기화 모드는 하나만 사용할 수 있습니다. 동일한 앱 내에서 파티션 기반 동기화와 Flexible Sync를 혼합할 수 없습니다.
Flexible Sync
백엔드 앱 구성에 Flexible Sync를 선택할 때에는 클라이언트 구현에 쿼리 가능 필드에 대한 쿼리 구독이 포함되어야 합니다. Flexible Sync는 클라이언트 애플리케이션에서 유지 관리하는 쿼리 구독과 일치하는 데이터를 동기화하여 작동합니다.
구독 세트에는 쿼리 세트가 포함되어 있습니다. Realm Flexible Sync는 사용자에게 문서를 읽고 쓸 수 있는 적절한 권한 이 있는 경우 해당 쿼리와 일치하는 문서를 반환합니다. 문서가 쿼리와 일치하지만 클라이언트에 해당 문서를 읽거나 쓸 수 있는 권한이 없는 경우 해당 문서는 클라이언트 애플리케이션과 동기화되지 않습니다.
Realm 쿼리 언어를 사용하여 쿼리를 작성할 수 있습니다.
참고
Flexible Sync는 Realm 쿼리 언어와 SDK의 쿼리 엔진에서 사용할 수 있는 모든 쿼리 연산자를 지원하지 않습니다. 자세한 내용은 Flexible Sync RQL 제한 사항을 참조하.
구독 세트는 특정 유형의 Realm 객체를 기반으로 합니다. 여러 유형의 Realm 객체가 있는 경우 여러 개의 구독이 있을 수 있습니다.
클라이언트 애플리케이션에서 Flexible Sync를 사용하려면 Flexible Sync 구성으로 동기화된 영역을 엽니다. 그런 다음 구독을 관리하여 동기화할 문서를 결정합니다.
성능 향상을 위한 그룹 업데이트
구독 세트에 대한 모든 쓰기 트랜잭션(write transaction)에는 성능이 소모됩니다. 세션 중에 영역 객체를 여러 번 업데이트해야 하는 경우 모든 변경이 완료될 때까지 편집한 객체를 메모리에 보관하는 것이 좋습니다. 이렇게 하면 모든 변경 사항 대신 완전하고 업데이트된 객체만 영역에 기록하므로 동기화 성능이 향상됩니다.
팁
Device Sync 는 Flexible Sync와 이전 파티션 기반 동기화, 이렇게 두 가지 동기화 모드를 지원합니다. App Services 백엔드 에서 파티션 기반 동기화 를 사용하는 경우 파티션 기반 동기화 - Node.js SDK 를 참조하세요.
새로운 앱에서는 Flexible Sync를 사용하는 것이 좋습니다.