클라이언트 애플리케이션의 데이터를 Atlas 및 기타 기기와 동기화
이 페이지의 내용
Realm 데이터베이스를 사용하는 모바일 또는 클라이언트 애플리케이션이 있고 다른 기기와 해당 데이터를 동기화하고 MongoDB Atlas에 백업하려는 경우 Device Sync를 사용하면 됩니다. 시작하려면 다음과 같은 개략적인 단계를 따르세요.
Atlas Access 설정
Atlas App Services App 만들기
App Services 애플리케이션은 클라이언트 장치를 MongoDB Atlas에 연결할 수 있게 해주는 게이트웨이입니다. App을 만들 때는 이름을 지정하고, Atlas 클러스터에 연결하고, 애플리케이션에 가장 적합한 배포서버 모델과 배포서버 리전을 지정합니다.
App Services App을 만드는 방법을 알아보려면 앱 만들기를 참조하세요.
Device Sync 구성
Device Sync는 Atlas 및 클라이언트 기기 간 데이터 동기화를 관리하는 서비스입니다. Device Sync는 Realm SDK와 함께 네트워크 연결, 충돌 해결, 사용자 인증, 사용자 권한 및 데이터 액세스를 자동으로 관리합니다.
Device Sync를 구성할 때 클라이언트 장치에서 액세스할 수 있는 데이터 소스와 사용자가 읽고 쓸 수 있는 데이터를 결정하는 권한을 지정합니다.
Atlas UI, Atlas App Services CLI 또는 App Services Admin API를 통해 Device Sync를 구성할 수 있습니다. Device Sync를 처음 구성하는 경우 다양한 설정 및 옵션에 대한 링크와 정보를 제공하는 Atlas UI를 사용하는 것이 도움이 될 수 있습니다.
인증 제공자 활성화
클라이언트 사용자는 인증을 받아야 동기화된 데이터에 액세스할 수 있습니다. App Services는 사용자가 인증을 완료할 수 있도록 다양한 인증 제공자를 제공합니다. 이러한 인증 제공자 중 하나 이상을 구성해 클라이언트 애플리케이션에서 인증을 사용하도록 설정하세요.
왼쪽 탐색 메뉴에서 Authentication 를 선택하여 App Services App UI 내에서 인증 제공자를 구성한 다음 제공자 를 클릭하여 구성할 수 있습니다. Atlas App Services 명령줄 인터페이스 또는 App Services Admin API를 사용하여 App Services 구성을 편집하여 인증 제공자를 구성할 수도 있습니다.
Atlas App Services 스키마 생성
Realm 데이터베이스를 사용하는 클라이언트 애플리케이션이 이미 있는 경우 Realm 객체 모델을 사용하여 클라이언트 기기와 Atlas 간에 데이터를 매핑하는 Atlas App Services 스키마를 생성할 수 있습니다. 동기화된 Realm 데이터에서 객체 모델 데이터를 읽고 해당 데이터에서 스키마를 생성하는 기능인 개발 모드를 활성화하면 됩니다.
Realm 객체 모델에서 Atlas App Services 스키마를 생성하는 방법에 대한 자세한 내용은 Realm 객체 모델에서 Atlas App Services 스키마 생성을 참조하세요 Realm
클라이언트 애플리케이션에 동기화 추가
그런 다음 Atlas 사이드에 필요한 모든 설정하다 을 마쳤으며 데이터 동기화 를 위해 클라이언트 애플리케이션 을 준비할 수 있습니다. Realm 데이터베이스를 사용하여 데이터를 유지하는 클라이언트 애플리케이션 이 이미 있는 경우, 몇 가지 요소를 추가하기만 하면 해당 데이터를 여러 기기 및 Atlas 와 동기화할 수 있습니다.
동기화된 Realm 열기
인증된 사용자가 있으면 동기화된 Realm 데이터베이스 인스턴스를 열어 해당 사용자에 대해 사용할 수 있습니다.
클라이언트 코드에서 Flexible Sync 쿼리 구독을 정의하여 클라이언트 애플리케이션에 동기화할 데이터를 결정합니다. Device Sync는 사용자가 읽기 및 쓰기 권한이 있는 쿼리와 일치하는 Atlas 문서를 찾고 해당 문서를 클라이언트 장치에 Realm 객체로 동기화합니다. Flexible Sync 쿼리 구독을 추가, 제거 또는 업데이트하여 기기에 동기화되는 문서를 변경할 수 있습니다.
C++ SDK
Flutter SDK
Java SDK
Kotlin SDK
.NET SDK
Node.js SDK
React Native SDK
Swift SDK
기존 데이터를 동기화된 Realm으로 복사
이미 클라이언트 데이터가 있는 경우 동기화되지 않은 영역 에 Device Sync 를 직접 추가할 수 없습니다. 동기화되지 않은 영역 의 데이터를 동기화된 영역 으로 복사해야 합니다. 클라이언트 데이터가 없는 경우 이 단계를 건너뛸 수 있습니다.
일부 SDK는 Realm을 열 때 이 작업을 수행할 수 있는 메서드를 제공합니다. 그러나 많은 Realm SDK는 현재 Flexible Sync에서 이러한 메서드를 사용하는 것을 지원하지 않습니다.
SDK가 로컬 Realm을 Flexible Sync Realm으로 복사하는 것을 지원하지 않는 경우 동기화되지 않은 Realm의 각 객체를 반복하여 동기화된 Realm으로 복사하는 로직을 작성해야 합니다. 이 프로세스는 한 번만 수행할 수 있습니다. 데이터를 복사한 후에는 동기화되지 않은 Realm을 삭제하고 앞으로 동기화된 Realm만 열 수 있습니다.