문서 메뉴

문서 홈Atlas App Services

Atlas Device Sync 시작하기

이 페이지의 내용

  • 시작하기 전
  • 데이터 모델 구성
  • SDK 선택
  • 데이터 모델 정의
  • 데이터 액세스 패턴 정의
  • 데이터 액세스 규칙 정의
  • 동기화 사용
  • 동기화 데이터 사용량 최적화
  • 클라이언트 애플리케이션에서 쿼리 생성

기기 간에 데이터를 동기화하려면 앱에 대해 Device Sync를 활성화한 다음, SDK에서 동기화 관련 메서드 및 속성을 사용합니다.

튜토리얼 확인하기

예제를 통해 학습하는 것을 선호하는 경우 App Services가 지원하는 공통 플랫폼용 클라이언트와 동기화된 할 일 목록 애플리케이션을 빌드하는 방법을 설명하는 App Services 튜토리얼 을 확인하세요.

Realm은 모바일 사용 사례에 최적화된 객체 데이터베이스입니다. 여러 언어와 플랫폼에서 사용할 수 있는 Realm SDK 에는 클라이언트 코드에 동기화된 "영역"으로 작업하는 데 필요한 모든 것이 포함되어 있습니다. 여러 SDK를 사용하여 여러 기기 및 플랫폼에서 동일한 동기화된 데이터 세트로 작업할 수 있습니다.

이 가이드는 SDK와의 동기화 구성에 중점을 두고 있습니다. Realm SDK를 보다 일반적으로 설치하고 사용하는 방법에 대한 세부 정보가 포함된 상세 문서를 보려면 SDK 문서를 확인하세요.

참고

Realm 웹 SDK는 현재 Realm 데이터베이스 또는 Atlas Device Sync를 지원하지 않습니다. 그러나 MongoDB 데이터 액세스를 사용하여 Atlas 클러스터에서 동일한 데이터를 쿼리할 수 있습니다.

동기화된 영역은 사용자가 정의하는 객체 모델을 사용하여 영역의 객체 유형을 결정합니다. 또한 동기화에는 동기화된 각 객체 유형에 대한 서버 측 문서 스키마가 필요하므로 App Services에서 동기화된 영역과 MongoDB Atlas 간의 변경 사항을 번역하고 적용할 수 있습니다.

동기화된 객체 모델을 정의하려면 각 객체 유형에 대해 다음 중 하나를 수행합니다:

  • SDK에서 객체 모델 동기화: 개발 모드에서 App Services는 동기화된 각 객체 유형에 대한 문서 스키마를 자동으로 생성하고 해당 스키마를 연결된 클러스터의 컬렉션에 객체 유형과 동일한 이름으로 할당합니다. 개발 모드에서는 프로덕션 앱에서 사용하는 것과 동일한 객체 모델과 코드를 사용하여 클라이언트 애플리케이션에서 동기화된 데이터 모델을 구성할 수 있습니다. 이는 선호하는 프로그래밍 언어의 관용적 객체 모델을 사용하는 클라이언트 우선 접근 방식을 선호하는 경우에 유용합니다.

    개발 모드를 켜는 방법에 대한 연습은 개발 모드 사용을 참조하세요.

  • 문서 스키마에서 객체 모델 생성: App Services는 클라이언트 애플리케이션에서 사용할 수 있는 언어별 객체 모델을 자동으로 생성할 수 있습니다. 생성된 모델은 앱의 동기화된 클러스터에 정의된 문서 스키마와 일치합니다. 이러한 스키마를 수동으로 정의하거나 App Services가 클러스터의 기존 데이터를 샘플링하여 자동으로 만들 수 있습니다. 이는 서버 우선 접근 방식을 선호하거나 여러 SDK로 앱을 구축하려는 경우에 유용합니다.

    서버 측 문서 스키마를 기반으로 객체 모델을 생성하는 방법에 대한 안내는 SDK 객체 모델 생성을 참조하세요.

    생성된 객체 모델이 있으면 클라이언트 애플리케이션에 직접 복사하여 원하는 프로그래밍 언어의 일반 객체나 구조체와 동일한 방식으로 사용할 수 있습니다.

앱의 데이터 모델을 결정한 후에는 앱 데이터에 대한 데이터 액세스 패턴과 액세스 규칙을 정의할 수 있습니다.

클라이언트 애플리케이션은 문서의 쿼리 가능 필드를 쿼리하여 동기화할 객체를 결정할 수 있습니다. 그런 다음 App Services는 규칙과 기본 역할을 적용하여 사용자가 쿼리와 일치하는 객체를 읽거나 쓸 수 있는지 여부를 결정합니다.

데이터 액세스 규칙은 동기화할 데이터와 각 사용자의 데이터 읽기 및 쓰기 권한을 결정합니다. 규칙은 앱의 데이터 모델과 밀접하게 연결되어 있습니다.

Flexible Sync를 사용하면 클라이언트 애플리케이션에서 일치하는 객체에 대한 쿼리를 통해 어떤 데이터를 동기화할지 지정할 수 있습니다. 그런 다음 App Services는 역할과 규칙을 평가하여 일치하는 객체 중 사용자가 읽고 쓸 수 있는 객체를 결정합니다.

특정 컬렉션에서 역할을 정의할 수 있습니다. 더 구체적인 역할이 적용되지 않는 경우 기본 역할은 읽기 및 쓰기 권한을 제공합니다. 기본 역할은 앱이 액세스할 수 있는 모든 컬렉션에 적용되지만 컬렉션 이름을 지정하여 역할을 특정 컬렉션으로 제한할 수 있습니다.

동기화를 활성화하면 클라이언트가 앱의 데이터에 액세스할 수 있는 방법을 지정할 수 있습니다. 동기화를 켜는 방법에 대한 안내는 Atlas Device Sync 구성 및 활성화를 참조하세요.

Device Sync는 컬렉션의 모든 데이터를 Atlas 클러스터에 정의된 스키마와 동기화합니다. 스키마에 필드를 지정하지 않으면 Device Sync는 해당 필드를 클라이언트에 동기화하지 않습니다.

동기화는 클라이언트와의 데이터 동기화를 돕기 위해 동기화된 클러스터에 일부 유틸리티 데이터를 저장합니다. Device Sync에는 동기화된 클러스터에 저장되는 유틸리티 데이터의 양을 줄이기 위한 최적화 기능이 내장되어 있습니다. 사용 사례에 맞게 유틸리티 데이터의 양을 더 줄이고 싶다면 Device Sync Atlas 사용 최적화 가이드를 참조하세요.

Flexible Sync를 사용하도록 설정하면 클라이언트 애플리케이션에서 쿼리 생성을 시작할 수 있습니다.

Realm SDK는 클라이언트 애플리케이션에서 쿼리를 생성, 업데이트, 제거하는 메서드를 제공합니다. SDK는 구독을 사용하여 클라이언트 측에서 이러한 쿼리를 유지 관리합니다. 이러한 구독을 통해 애플리케이션은 객체를 백엔드 앱과 동기화하고 변경 사항을 감시하고 이에 대응할 수 있습니다.

클라이언트 애플리케이션에서 쿼리를 생성하려면 Realm SDK 설명서를 참조하세요:

중요

Flexible Sync는 사용자 정의 데이터 정렬 무시

Flexible Sync는 Atlas의 MongoDB 컬렉션에 구성했을 수 있는 모든 사용자 지정 데이터 정렬 을 무시합니다. 대신 동기화된 컬렉션은 동기화 구독 또는 권한을 평가할 때 항상 {locale: "simple"} 를 사용합니다.

← Atlas Device Sync