Atlas Device Sync 시작하기
이 페이지의 내용
여러 기기에서 데이터를 동기화 하려면 Device Sync 를 활성화 한 다음 Atlas Device SDK 에서 동기화 관련 메서드 및 속성을 사용합니다.
팁
튜토리얼 확인하기
예시 를 통해 학습 하는 것을 선호하는 경우 App Services 가 지원하는 일반적인 플랫폼용 클라이언트와 동기화된 할 일 목록 애플리케이션 을 사용하는 Device Sync 튜토리얼 을 확인하세요.
시작하기 전
아직 계정이 없는 경우, 무료 MongoDB Atlas 계정에 가입하세요.
Device Sync 에는 MongoDB 버전 5.0 이상을 실행 하는 Atlas cluster 가 필요합니다. 무료 공유 M0 클러스터 를 사용하여 앱 을 탐색하고 개발할 수 있습니다. 프로덕션 애플리케이션에는 전용 계층 클러스터 (M10 이상)를 사용하는 것이 좋습니다. 서버리스 인스턴스 또는 연합 데이터베이스 인스턴스와의 동기화 는 사용할 수 없습니다.
아직 없는 경우 Atlas cluster 에 연결된 새 App Services App 을 만듭니다 .
데이터 모델 구성
SDK 선택
Atlas Device SDK 는 모바일에 최적화된 객체 데이터베이스 인 Realm Core 데이터베이스를 래핑합니다. 여러 언어와 플랫폼에서 사용할 수 있는 SDK에는 클라이언트 코드에서 동기화된 데이터베이스로 작업하는 데 필요한 모든 것이 포함되어 있습니다. 여러 SDK 언어를 사용하여 여러 기기 및 플랫폼에서 동일한 동기화된 데이터 설정하다 로 작업할 수 있습니다.
이 가이드 는 SDK를 사용하여 Device Sync 를 구성하는 데 중점을 둡니다. Atlas Device SDK 를 보다 일반적으로 설치하고 사용하는 방법에 대한 세부 정보가 포함된 심층 문서를 보려면 SDK Docs 를 확인하세요.
참고
WebAssembly SDK와 함께 사용 Device Sync Realm JavaScript
Realm 데이터베이스 API 및 Atlas Device Sync 를 사용하여 브라우저용 실시간 웹 앱을 빌드하는 방법에 대한 자세한 내용은 Realm Web & Atlas Device Sync 시작하기(미리 보기) 를 참조하세요. 또는 MongoDB 데이터 액세스를 사용하여 Atlas cluster 에서 동일한 데이터를 쿼리 할 수 있습니다.
데이터 모델 정의
동기화된 데이터베이스 는 사용자가 정의한 객체 모델을 사용하여 데이터베이스 의 객체 유형을 결정합니다. 또한 동기화에는 동기화된 각 객체 유형에 대한 서버 측 문서 스키마 가 필요하므로 서버 가 동기화된 데이터베이스와 MongoDB Atlas 간에 변경 사항을 변환하고 적용 할 수 있습니다.
동기화된 객체 모델을 정의하려면 각 객체 유형에 대해 다음 중 하나를 수행합니다:
SDK에서 객체 모델 동기화: 개발 모드 에서 동기화된 각 객체 유형에 대한 문서 스키마 를 자동으로 생성하고 해당 스키마 를 연결된 클러스터 의 컬렉션 에 객체 유형과 동일한 이름으로 할당할 수 있습니다. 개발 모드 를 사용하면 프로덕션 앱 에서 사용하는 것과 동일한 객체 모델 및 코드를 사용하여 클라이언트 애플리케이션 에서 동기화 데이터 모델 을 구성할 수 있습니다. 이는 선호하는 프로그래밍 언어 의 관용적 객체 모델을 사용하는 클라이언트 우선 접근 방식을 선호하는 경우에 유용합니다.
시작하려면 데이터 모델 생성을 확인하세요.
문서 스키마 에서 객체 모델 생성 : Atlas 에 이미 데이터가 있는 경우 앱의 동기화된 클러스터 에 정의된 문서 스키마와 일치하는 언어별 객체 모델을 자동으로 생성할 수 있습니다. 이러한 스키마를 수동으로 정의하거나 App Services 가 클러스터 의 기존 데이터를 샘플 하여 자동으로 만들 수 있습니다. 이는 서버 우선 접근 방식을 선호하거나 여러 SDK로 앱을 빌드 하려는 경우에 유용합니다.
클라이언트 애플리케이션에서 사용할 수 있는 객체 모델을 생성하는 방법에 대한 안내는 SDK 객체 모델 생성을 참조하세요.
생성된 객체 모델이 있으면 클라이언트 애플리케이션에 직접 복사하여 원하는 프로그래밍 언어의 일반 객체나 구조체와 동일한 방식으로 사용할 수 있습니다.
데이터 액세스 패턴 정의
앱의 데이터 모델을 결정한 후에는 앱 데이터에 대한 데이터 액세스 패턴과 액세스 규칙을 정의할 수 있습니다.
클라이언트 애플리케이션은 문서의 쿼리 가능 필드를 쿼리하여 동기화할 객체를 결정할 수 있습니다. 그런 다음 App Services는 규칙과 기본 역할을 적용하여 사용자가 쿼리와 일치하는 객체를 읽거나 쓸 수 있는지 여부를 결정합니다.
데이터 액세스 규칙 정의
데이터 액세스 규칙은 동기화할 데이터와 각 사용자의 데이터 읽기 및 쓰기 권한을 결정합니다. 규칙은 앱의 데이터 모델과 밀접하게 연결되어 있습니다.
Device Sync 를 사용하면 클라이언트 애플리케이션 에서 일치하는 객체에 대한 쿼리를 통해 동기화 할 데이터를 지정할 수 있습니다. 그런 다음 App Services 는 역할과 규칙 을 평가하여 일치하는 객체 중 사용자가 읽고 쓰기 (write) 수 있는 객체를 결정합니다.
특정 컬렉션에서 역할을 정의할 수 있습니다. 더 구체적인 역할이 적용되지 않는 경우 기본 역할은 읽기 및 쓰기 권한을 제공합니다. 기본 역할은 앱이 액세스할 수 있는 모든 컬렉션에 적용되지만 컬렉션 이름을 지정하여 역할을 특정 컬렉션으로 제한할 수 있습니다.
동기화 구성
Device Sync 를 사용하면 클라이언트가 앱의 데이터에 액세스 할 수 있는 방법을 지정할 수 있습니다. 동기화를 활성화 하고 구성하는 방법에 대한 안내는 Atlas Device Sync 구성 및 활성화를 참조하세요.
동기화 데이터 사용량 최적화
Device Sync는 컬렉션의 모든 데이터를 Atlas 클러스터에 정의된 스키마와 동기화합니다. 스키마에 필드를 지정하지 않으면 Device Sync는 해당 필드를 클라이언트에 동기화하지 않습니다.
동기화는 클라이언트와의 데이터 동기화를 돕기 위해 동기화된 클러스터에 일부 유틸리티 데이터를 저장합니다. Device Sync에는 동기화된 클러스터에 저장되는 유틸리티 데이터의 양을 줄이기 위한 최적화 기능이 내장되어 있습니다. 사용 사례에 맞게 유틸리티 데이터의 양을 더 줄이고 싶다면 Device Sync Atlas 사용 최적화 가이드를 참조하세요.
클라이언트 애플리케이션에서 쿼리 생성
Device Sync 가 활성화되면 클라이언트 애플리케이션 에서 쿼리 생성을 시작할 수 있습니다.
Atlas Device SDK 는 클라이언트 애플리케이션 에서 쿼리를 생성, 업데이트 및 제거 하는 메서드를 제공합니다. SDK는 구독 을 사용하여 클라이언트 사이드에서 이러한 쿼리를 유지 관리합니다. 이러한 구독을 통해 애플리케이션은 객체를 백엔드 앱 과 동기화 하고 변경 사항을 감시하고 이에 React 수 있습니다.
클라이언트 애플리케이션 에서 쿼리를 생성하려면 선호하는 프로그래밍 언어 작성된 Atlas Device SDK 설명서를 참조하세요.
경고
쿼리 크기 제한
Device Sync 를 사용할 때 클라이언트 애플리케이션 의 쿼리 크기 제한 은 256 KB 입니다. 쿼리 에서 이 제한을 초과하면 LimitsExceeded 오류가 발생합니다.
중요
Flexible Sync는 사용자 정의 데이터 정렬 무시
Flexible Sync는 Atlas 의 MongoDB 컬렉션 에 구성했을 수 있는 모든 사용자 지정 데이터 정렬 을 무시합니다. 대신 동기화된 컬렉션은 동기화 구독 또는 권한을 평가할 때 항상 {locale: "simple"}
를 사용합니다.