동기화 설정
이 페이지의 내용
이 페이지에서는 Device Sync를 활성화하거나 구성할 때 사용할 수 있는 설정에 대해 설명합니다.
사용 가능한 설정
동기화할 클러스터
동기화된 데이터를 저장 하려는 연결된 Atlas cluster 데이터 소스 의 이름입니다.
Device Sync 가 활성화된 동안에는 이 필드 를 수정할 수 없습니다. 다른 클러스터 를 선택하려면 먼저 동기화를 종료 해야 합니다.
참고
Device Sync 를 위한 데이터 소스 요구 사항
Device Sync 를 활성화 하려면 App Services App 에 다음 요구 사항을 충족하는 연결된 데이터 소스 가 하나 이상 있어야 합니다.
MongoDB 5.0 이상을실행 하는 비샤드 MongoDB Atlas cluster .
클러스터는 서버리스 인스턴스 또는 연합 데이터베이스 인스턴스 일 수 없습니다 . 데이터 소스 제한 사항을 참조하세요.
동기화 유형
중요
동기화 유형은 파티션 기반 동기화 앱에서만 사용할 수 있습니다.
앱의 동기화 유형을 선택하는 기능 은 프로젝트 에 기존 파티션 기반 동기화 앱 이 하나 이상 있는 조직에서만 사용할 수 있습니다.
파티션 기반 동기화 는 더 이상 사용되지 않으며 새로운 동기화 구성에 허용되지 않습니다. 대신 모든 새로운 동기화 구성은 자동으로 권장 Flexible Sync 모드 로 기본값 설정됩니다.
Device Sync 를 활성화 하면 다음 동기화 모드 중 하나를 선택할 수 있습니다.
Flexible Sync 를 사용하면 클라이언트 에서 쿼리를 정의하고 쿼리 와 일치하는 객체만 동기화 할 수 쿼리. 클라이언트 사이드 구독을 통해 클라이언트 애플리케이션은 다음을 수행할 수 있습니다.
쿼리 유지 관리
변경 사항에 대응
쿼리 추가, 변경 또는 삭제
Flexible Sync는 새로운 동기화 구성에 사용할 수 있는 유일한 모드 입니다.
파티션 기반 동기화 는 더 이상 사용되지 않는 이전 동기화 모드 이며 새 동기화 구성에 허용되지 않습니다.
이미 이전 파티션 기반 동기화 를 사용하고 있는 기존 앱 이 있는 경우, Flexible Sync 마이그레이션 하는 것이 좋습니다. 마이그레이션은 SDK 버전을 업그레이드하는 것 외에는 클라이언트 앱 코드를 변경할 필요가 없는 자동 프로세스 입니다. 자세한 내용은 Device Sync 모드 마이그레이션을 참조하세요.
Device Sync 가 활성화된 동안에는 동기화 유형을 변경할 수 없습니다. 변경하려면 먼저 동기화를 종료하거나 일시 중지 해야 합니다.
개발 모드
개발 모드는 Device Sync가 클라이언트 사이드 데이터 모델을 기반으로 스키마를 추론하고 업데이트할 수 있도록 하는 구성 설정입니다. 이는 개발을 간소화하지만 프로덕션에서는 사용하면 안 됩니다.
개발 모드에서는 클라이언트 애플리케이션 코드에서 직접 스키마를 설계할 수 있으므로 개발 속도가 빨라집니다.
영역을 동기화하면 Atlas App Services는 동기화된 모든 객체 유형을 데이터베이스 이름(개발 모드만 해당)으로 지정된 데이터베이스의 자체 컬렉션에 매핑합니다. 클라이언트 사이드에서 객체 모델을 업데이트하면 App Services는 일치하도록 컬렉션 스키마를 업데이트합니다. 이를 통해 앱을 개발하면서 클라이언트 코드의 객체를 업데이트할 수 있습니다.
개발 모드에서 데이터 액세스 규칙을 사용할 수 있습니다. 스키마 변경은 데이터 액세스 규칙을 무시한다는 점에 유의합니다. 이는 모든 클라이언트가 클라이언트 모델을 변경하여 백엔드 스키마를 업데이트할 수 있음을 의미합니다.
개발 모드를 사용할 때 Realm 객체 스키마가 앱 서비스 스키마에 매핑되는 방법에 대해 자세히 알아보려면 데이터 모델 매핑을 참조하세요.
동기화된 객체 스키마 수정에 대한 자세한 내용은 다음을 참조하세요: 데이터 모델 업데이트하기
중요
프로덕션 앱의 개발 모드 비활성화
개발 모드는 프로덕션용으로 사용하기에 적합하지 않은 개발 유틸리티입니다. 프로덕션 환경에서 앱에 액세스할 수 있도록 하기 전에 개발 모드를 꺼야 합니다.
호환성이 손상되는 변경
2023년 9월 13일 이후에 생성된 개발 모드의 App Services 앱은 클라이언트 코드에서 동기화된 객체 스키마로 호환성이 손상되는 변경 사항을 적용할 수 있습니다.
앱이 2023년 9월 13일 이전에 생성된 경우 지원팀에 문의하여 이 기능을 활성화할 수 있습니다.
전제 조건
2023년 9월 13일 이후에 생성된 App Services 앱
Flexible Sync 호환성을 위한 MongoDB 5.0 이상 버전
최소 SDK 버전:
Realm C++ SDK v1.0.0
Realm Flutter SDK v1.6.0
Realm Java SDK v10.16.2
Realm Kotlin SDK v11.1.1
Realm .NET SDK v11.6.0
Realm Node.js SDK v12.2.0
Realm React Native SDK v12.2.0
Realm Swift SDK v10.42.2
참고
2023년 9월 13일 이전에 생성된 앱
2023년 9월 13일 이전에 생성된 앱의 경우 App Services UI에서 객체 스키마를 업데이트해야 합니다. 자세한 내용은 데이터 모델 업데이트를 참조하세요.
클라이언트 코드에서 호환성이 손상되는 변경을 수행하려면 다음을 따릅니다:
로컬 영역과 데이터를 삭제합니다. 이는 백엔드에 동기화된 데이터에는 영향을 미치지 않습니다. 동기화되지 않은 로컬 변경 사항은 제거되며 복구할 수 없습니다.
로컬 객체 모델을 변경합니다.
업데이트된 객체 모델로 영역을 엽니다.
클라이언트 앱을 실행하여 변경 사항을 백엔드에 동기화합니다.
Realm 파일을 삭제하려면 Realm SDK 전용 메서드를 사용합니다:
개발 모드 활성화의 부작용
개발 모드를 활성화하면 두 가지 부작용이 있습니다:
앱에 익명 인증이 필요하지 않은 경우 개발 모드를 활성화한 후 익명 인증을 비활성화할 수 있습니다.
개발 모드를 비활성화할 때까지 UI에서 배포 초안을 다시 활성화할 수 없습니다. 그러나 CLI 또는 Admin API를 통해 수동으로 배포 초안을 생성할 수 있습니다.
데이터베이스 이름(개발 모드만 해당)
개발 모드를 활성화하면 동기화된 객체를 저장할 데이터베이스를 지정할 수 있습니다. App Services는 모든 유형의 동기화된 객체에 대해 이 개발 모드 데이터베이스에 새 컬렉션을 만듭니다.
예시
개발 모드 데이터베이스를 myapp
으로 지정합니다. iOS 클라이언트에 Person
모델이 있습니다. Person
객체의 인스턴스가 포함된 영역을 동기화합니다. 개발 모드는 모델과 연결된 서버 측 스키마를 생성합니다. 객체가 myapp.Person
컬렉션에 동기화됩니다.
App Services는 각각의 새 객체 유형에 대해 계속해서 새로운 서버 측 스키마와 컬렉션을 만듭니다. 나중에 Dog
객체를 추가하면 해당 객체는 App Services에서 생성할 새 myapp.Dog
컬렉션과 동기화됩니다.
쿼리 가능 필드
Flexible Sync를 구성할 때 클라이언트 애플리케이션이 Flexible Sync 구독에서 쿼리할 수 있는 필드 이름을 지정합니다. 구독 쿼리에 사용할 수 있는 필드를 쿼리 가능 필드라고 합니다.
예시
할 일 목록 앱에서 assignee
또는 owner
를 쿼리 가능한 필드로 설정할 수 있습니다. 그런 다음 클라이언트 사이드에서 assignee
또는 owner
가 로그인한 사용자와 일치하는 작업을 쿼리할 수 있습니다.
쿼리 가능 필드 범위
쿼리 가능 필드는 구성할 때 지정한 범위에 적용됩니다. 사용 가능한 범위는 두 가지입니다:
글로벌 쿼리 가능 필드: 앱 스키마의 모든 컬렉션에 걸쳐 범위가 지정됩니다.
컬렉션 쿼리 가능 필드: 앱의 단일 컬렉션으로 범위가 지정됩니다.
쿼리 가능한 필드의 범위를 특정 컬렉션으로 지정하면 동기화 메타데이터를 저장하는 데 필요한 백업 Atlas 저장소의 용량이 줄어듭니다.
규칙과 권한을 사용하여 컬렉션별로 보다 세분화된 액세스 제어를 구성할 수 있습니다. 글로벌 및 컬렉션 쿼리 가능 필드 모두에 대해 컬렉션 수준 규칙 및 권한을 정의할 수 있습니다.
쿼리 가능 필드 구성
개발 모드를 활성화하면 쿼리 가능 필드를 자동으로 지정할 수 있습니다. 개발 모드를 사용하는 동안 클라이언트 쿼리에 나타나는 필드는 쿼리 중인 컬렉션에 대한 컬렉션 쿼리 가능 필드로 자동으로 추가됩니다.
입력하는 필드 이름은 임의의 문자열입니다. 객체 유형에 제공한 필드 이름과 이름이 일치하고 다른 자격 기준을 충족하는 필드가 있는 경우 해당 필드를 Device Sync에서 쿼리할 수 있게 됩니다.
인덱싱된 쿼리 가능 필드 구성
Device Sync가 활성화되어 있지 않은 경우에만 인덱싱된 쿼리 가능 필드를 추가하거나 제거할 수 있습니다. 앱에서 Device Sync가 이미 실행 중인 경우, 동기화를 종료하고 다시 활성화할 때 인덱싱된 쿼리 가능 필드를 구성해야 합니다.
이렇게 하면 동기화를 다시 활성화한 후 재연결을 시도하는 모든 클라이언트에 대해 클라이언트가 재설정됩니다.
대상 필드 유형
Flexible Sync는 쿼리 가능한 필드로 스칼라 유형이 있는 최상위 초기(primitive) 필드만 지원합니다. 또한 이러한 초기 배열을 쿼리 가능 필드로 포함할 수 있습니다. Flexible Sync는 내장된 객체 또는 객체 배열을 쿼리 가능 필드로 지원하지 않습니다.
인덱싱된 쿼리 가능 필드는 데이터 유형의 하위 집합을 지원합니다. 인덱싱된 쿼리 가능 필드는 다음 중 하나일 수 있습니다: int64
, string
, ObjectId
, UUID
.
팁
다음도 참고합니다: Realm 쿼리 언어 - Flexible Sync 제한 사항
이러한 필드에 대해 수행할 수 있는 쿼리에 대한 자세한 내용은 다음을 참조하세요: Flexible Sync RQL 제한 사항
예약된 필드 이름
App Services는 Realm 쿼리 언어 및 기타 목적을 위해 일부 키워드를 별도로 보존합니다. 보존된 키워드는 필드 이름으로 사용할 수 없습니다.
App Services에서는 대문자를 사용하여 다음 키워드를 보존합니다.
|
|
|
예시
descending
, Descending
, DESCENDING
또는 DeScEnDiNG
을 필드 이름으로 사용할 수 없습니다.
또한 App Services는 지정된 정확한 대/소문자를 사용하여 다음 키워드를 별도로 보존합니다.
|
|
|
예시
두 대문자가 모두 별도로 보존되어 있으므로 true
또는 TRUE
는 사용할 수 없지만 True
또는 tRUE
는 필드 이름으로 사용할 수 있습니다.
성능 및 스토리지
각 쿼리 가능 필드는 Atlas 클러스터에 추가 메타데이터 저장소를 추가하므로 쓰기 성능이 저하될 수 있습니다. 애플리케이션에 필요한 만큼 쿼리 가능 필드가 있어야 하며, 필요한 최소 컬렉션 수로 범위를 지정해야 합니다.
많은 앱이 단일 컬렉션에 최대 10개까지 쿼리 가능 필드를 적용하여 스토리지 사용량과 쿼리 유연성 간에 적절한 균형을 맞추고 있습니다. 예를 들어, 3개의 글로벌 쿼리 가능 필드와 7개의 컬렉션 쿼리 가능 필드가 있는 경우 컬렉션에 적용되는 쿼리 가능 필드는 10개가 됩니다.
하나의 컬렉션에서만 쿼리하려는 필드가 있지만 해당 필드가 글로벌 쿼리 가능 필드로 구성되어 있는 경우, 불필요하게 Atlas 저장 공간을 소모합니다. 예를 들어 모든 컬렉션에 user
필드가 있지만 한 컬렉션의 동기화 쿼리에만 사용하는 경우 해당 필드를 컬렉션 쿼리 가능 필드로 범위를 지정하면 저장소 요구 사항을 줄일 수 있습니다. 범위를 줄이면 동기화에서 user
필드를 쿼리하지 않는 다른 컬렉션의 해당 필드에 대한 메타데이터를 유지 관리할 필요가 없습니다.
저장소 사용량을 줄이거나 성능을 향상해야 하는 경우 앱에서 불필요한 쿼리 가능 필드를 제거할 수 있습니다. 그러나 쿼리 가능한 필드를 추가하거나 제거하는 작업의 영향에 유의해야 합니다. 자세한 내용은 쿼리 가능 필드 추가 또는 제거의 결과를 참조하세요.
추가 고려 사항은 Flexible Sync 사용 시 성능 및 스토리지 최적화를 참조하세요.
인덱싱된 쿼리 가능 필드
인덱싱된 쿼리 가능 필드를 추가하여 특정 유형의 작업 부하에 대한 성능을 향상시킬 수 있습니다. 인덱싱된 쿼리 가능 필드는 보다 효율적으로 쿼리할 수 있는 글로벌 쿼리 가능 필드 로, 향상된 동기화 성능을 제공합니다. 하나의 글로벌 쿼리 가능 필드를 인덱싱된 쿼리 가능 필드로 지정할 수 있습니다.
쿼리 가능한 필드를 인덱싱하면 {“store_id”: 1}
또는 {“user_id”: “641374b03725038381d2e1fb”}
와(과) 같은 단일 필드에 대한 간단한 쿼리 성능이 향상됩니다.
인덱싱된 쿼리 가능 필드는 모든 동기화 컬렉션의 스키마에 반드시 표시되어야 하며 동일한 유효한 데이터 형식을 사용해야 합니다. 예를 들어 인덱싱된 쿼리 가능 필드가 store_id
인 경우 동기화하는 모든 컬렉션에 표시되어야 하며 모든 컬렉션에서 동일한 유효한 형식을 사용해야 합니다. 적합한 필드 유형에 대한 자세한 내용은 적합한 필드 유형을 참조하세요.
클라이언트에서 인덱싱된 쿼리 가능 필드 값을 변경할 수 없습니다.
인덱싱된 쿼리 가능 필드를 구성한 후에는 클라이언트 기기에서 기존 객체의 인덱싱된 쿼리 가능 필드 값을 업데이트할 수 없습니다. 예를 들어 인덱싱된 쿼리 가능 필드가 store_id
인 경우 클라이언트는 이 값을 직접 변경할 수 없습니다. 클라이언트에서 변경하는 것은 같은 기간 동안 객체에 적용된 다른 업데이트와 충돌할 수 있으므로 지원되지 않습니다.
기기에서 인덱싱된 쿼리 가능 필드의 값을 변경하려고 하면 보상 쓰기 오류가 발생합니다. 이 오류와 이로 인해 발생하는 동작에 대한 자세한 내용은 Flexible Sync 오류 문서에서 ErrorCompensatingWrite
를 참조하세요.
Atlas 데이터베이스에서 이 값을 직접 변경할 수 있습니다.
경고
Atlas를 통해 객체의 인덱싱된 쿼리 가능 필드 값을 변경하면 동시에 이뤄진 객체에 대한 클라이언트 업데이트를 덮어쓸 수 있습니다.
인덱싱된 쿼리 가능 필드에 대한 클라이언트 측 쿼리
앱에서 인덱싱된 쿼리 가능 필드를 사용하는 경우, Flexible Sync 구독의 클라이언트 사이드 쿼리에는 상수에 대해 ==
또는 IN
비교를 사용하여 인덱싱된 쿼리 가능 필드가 한 번 이상 반드시 포함되어야 합니다. 예를 들어 user_id == 641374b03725038381d2e1fb
또는 store_id IN {1,2,3}
입니다.
인덱싱된 쿼리 가능 필드가 ==
또는 IN
을 사용하여 상수와 한 번 이상 직접 비교되는 경우, 선택적으로 AND
비교를 포함할 수 있습니다. 예를 들어 store_id IN {1,2,3} AND region=="Northeast"
또는 store_id == 1 AND (active_promotions < 5 OR num_employees < 10)
입니다.
인덱싱된 쿼리 가능 필드에 대한 유효하지 않은 Flexible Sync 쿼리에는 다음과 같은 쿼리가 포합됩니다.
인덱싱된 쿼리 가능 필드가
AND
를 나머지 쿼리와 함께 사용하지 않는 경우.예를 들어store_id IN {1,2,3} OR region=="Northeast"
은AND
대신OR
을 사용하므로 유효하지않습니다. 마찬가지로store_id == 1 AND active_promotions < 5 OR num_employees < 10
는AND
가 전체 쿼리가 아니라 옆에 있는 용어에만 적용되므로 유효하지 않습니다.인덱싱된 쿼리 가능 필드가 동등 연산자에 사용되지 않는 경우.예를 들어
store_id > 2 AND region=="Northeast"
는>
연산자만 인덱싱된 쿼리 가능 필드에 사용하고 동등 비교는 없기 때문에 유효하지 않습니다.인덱싱된 쿼리 가능 필드가 쿼리에서 완전히 누락된 경우.예를 들어
region=="Northeast"
또는truepredicate
는 인덱싱된 쿼리 가능 필드를 포함하지 않으므로 유효하지 않습니다.
쿼리 가능 필드 추가 또는 제거의 결과
동기화가 활성화된 상태에서 동기화 구성을 업데이트하여 쿼리 가능 필드 이름을 추가하거나 제거할 수 있지만 다음 사항에 유의해야 합니다:
쿼리 가능 필드를 추가하면 기기가 Device Sync 기록에서 필드가 추가된 시점을 따라잡은 경우에만 해당 필드에서 기기를 동기화할 수 있습니다.
쿼리 가능 필드를 제거하면 해당 필드를 여전히 사용하는 모든 기기의 Device Sync 세션이 제거되며 클라이언트 재설정을 수행해야 합니다. 제거된 필드를 사용하지 않는 클라이언트에는 오류가 표시되지 않습니다. 쿼리 가능 필드를 제거할 때 클라이언트 재설정이 트리거되는 것을 방지하려면 먼저 클라이언트 사이드에서 해당 필드의 사용을 제거해야 합니다.
쿼리 가능 필드를 추가하거나 제거하기 전에 동기화를 종료하는 경우에는 이러한 고려 사항이 적용되지 않습니다. 그러나 동기화를 종료하면 앱과 동기화된 모든 클라이언트에 클라이언트 재설정이 트리거됩니다.
권한
Atlas Device Sync는 동기화된 클러스터에 대한 모든 요청에 역할 기반 데이터 액세스 규칙을 적용합니다. 규칙은 사용자가 데이터를 동기화하고, 보고, 수정할 수 있는 권한을 결정하는 동적 JSON 표현식입니다.
자세한 내용은 역할 기반 권한을 참조하세요.
데이터 인제스트
데이터 수집은 클라이언트 사이드 삽입 전용 워크로드가 많은 애플리케이션을 위한 동기화 전략입니다. 하나 이상의 컬렉션에 대해 이 기능을 활성화할 수 있습니다. Atlas time-series 컬렉션을 포함한 모든 컬렉션 유형에 대한 쓰기를 지원합니다.
예를 들어 센서 데이터를 자주 로그하는 IoT 앱은 쓰기 워크로드가 많고 읽기 워크로드는 없습니다. 또한 기기가 오랜 시간 동안 오프라인 상태일 수도 있습니다. 데이터 수집은 양방향 동기화에 필요한 일부 처리를 우회하여 Atlas 컬렉션에 대한 쓰기 속도를 크게 개선합니다.
다른 사용 사례는 리테일 앱의 인보이스 또는 애플리케이션 이벤트 로깅 등 불가변의 데이터를 쓰는 작업을 포함합니다. 두 사용 사례 모두 충돌 해결이 필요하지 않습니다.
개별 컬렉션에 데이터 수집을 적용할 수 있습니다. 즉, 앱에서 데이터 수집을 사용하여 일부 데이터를 쓸 수 있지만 다른 컬렉션에서는 양방향 Flexible Sync를 사용할 수 있습니다.
데이터 수집 컬렉션은 데이터 쓰기 전용입니다. 이러한 컬렉션에 대해서는 Flexible Sync 쿼리를 사용할 수 없습니다. 대신 MongoDB 데이터 소스에 연결을 사용하세요.
데이터 수집을 활성화한 후 클라이언트 SDK를 통해 클라이언트 앱에 구현합니다. 현재 Realm SDK가 다음 데이터 수집을 지원합니다:
C++ SDK: Atlas로 데이터 스트리밍 - C++ SDK
Flutter SDK: Atlas로 데이터 스트리밍 - Flutter SDK
Kotlin SDK: Atlas로 데이터 스트리밍 - Kotlin SDK
.NET SDK: 단방향 데이터 수집 - .NET SDK
Node.js SDK: 비대칭 객체 정의
React Native SDK: 비대칭 객체 정의
Swift SDK: Atlas로 데이터 스트리밍 - Swift SDK
Atlas Device Sync는 이 데이터의 수명 주기를 완벽하게 관리합니다. 데이터 수집 동기화가 완료될 때까지 유지된 후 기기에서 제거됩니다.
클라이언트 최대 오프라인 시간
클라이언트 최대 오프라인 시간은 동기화 세션 간에 클라이언트가 오프라인 상태일 수 있는 시간을 결정합니다. 이 값을 변경하면 오프라인 액세스와 동기화된 Atlas 클러스터에서 사용되는 스토리지의 균형을 맞출 수 있습니다. 자세한 내용은 클라이언트 최대 오프라인 시간을 참조하세요.
클라이언트 복구
클라이언트 복구를 사용하면 클라이언트가 기기의 데이터를 복구하는 동안 클라이언트 재설정을 자동으로 수행하려고 시도할 수 있습니다. 자세한 내용은 동기화되지 않은 변경 사항 복구를 참조하세요.
동기화 구성 파일 참조
내보낸 앱의 sync
디렉토리에서 애플리케이션의 동기화 구성 파일을 찾을 수 있습니다:
app/ └── sync/ └── config.json
예를 들어 다음 동기화 구성은 Flexible Sync를 사용하는 앱에 적용됩니다.
{ "type": "flexible", "development_mode_enabled": <Boolean>, "service_name": "<Data Source Name>", "database_name": "<Development Mode Database Name>", "state": <"enabled" | "disabled">, "client_max_offline_days": <Number>, "is_recovery_mode_disabled": <Boolean>, "queryable_fields_names": [ <Array of String Field Names> ], "indexed_queryable_fields_names": [ <Array of String Field Names> ], "collection_queryable_fields_names": <Map[String][]String> "permissions": "<Deprecated, Do Not Use>" }
더 이상 사용되지 않는 permissions
필드가 내보낸 앱의 구성에 여전히 나타날 수 있습니다. 이는 앱이 아직 통합 규칙 시스템으로 자동 마이그레이션되지 않았음을 의미할 수 있습니다. 앱을 마이그레이션할 때까지 이 필드를 삭제하지 마세요.
동기화 구성 객체
{ "type": "flexible", "development_mode_enabled": <Boolean>, "service_name": "<Data Source Name>", "database_name": "<Development Mode Database Name>", "state": <"enabled" | "disabled">, "client_max_offline_days": <Number>, "is_recovery_mode_disabled": <Boolean>, "queryable_fields_names": ["<Field Name>", ...], "indexed_queryable_fields_names": ["<Field Name>", ...], "collection_queryable_fields_names": { "<Collection Name>": ["<Field Name>", ...], ... } }
필드 | 설명 |
---|---|
type string | 동기화 모드입니다. 동기화 모드에는 Flexible Sync 및 파티션 기반 동기화, 이렇게 두 가지가 있습니다. Flexible Sync를 사용할 것을 권장합니다. 파티션 기반 동기화에 대한 자세한 내용은 파티션 기반 동기화를 참조하세요. Flexible Sync 구성을 위한 유효한 옵션입니다:
|
development_mode_enabled boolean | true 일 경우, 애플리케이션에 대해 개발 모드 가 활성화된 것입니다. 이 옵션을 활성화하면 App Services는 동기화된 객체를 특정 데이터베이스(database_name 에 지정됨)에 자동으로 저장하고, 해당 데이터베이스의 컬렉션 스키마에 객체 유형을 미러링합니다. |
service_name string | |
database_name string | App Services가 개발 모드에서 데이터를 저장하는 동기화된 클러스터의 데이터베이스 이름입니다. App Services는 동기화된 각 유형에 대한 스키마를 자동으로 생성하고 각 객체 유형을 데이터베이스 내의 컬렉션에 매핑합니다. |
state string | 애플리케이션에 대한 동기화 프로토콜의 현재 상태입니다. 유효한 옵션은 다음과 같습니다.
|
client_max_offline_days number | 백엔드 압축 프로세스가 이전 버전의 영역에서 동기화에 필요한 일부 클라이언트 메타데이터를 적극적으로 제거하기 전에 기다리는 일수입니다. |
is_recovery_mode_disabled boolean | false 인 경우 애플리케이션에 대해 복구 모드가 활성화됩니다. 기능이 활성화된 상태에서 이 기능을 지원하는 Realm SDK는 클라이언트 재설정을 수행할 때 동기화되지 않은 변경 사항을 복구하려고 시도합니다. 복구 모드는 기본적으로 활성화되어 있습니다. |
queryable_fields_names string[] | 글로벌 쿼리 가능 필드로 사용할 필드 이름의 목록입니다. |
indexed_queryable_fields_names string[] | 인덱싱된 쿼리 가능 필드로 사용할 필드 이름의 목록입니다. 이 속성은 배열이지만 동기화는 현재 인덱싱된 쿼리 가능 필드를 하나만 지원합니다. 따라서 이 배열에는 최대 하나의 요소만 포함될 수 있습니다. 인덱싱된 쿼리 가능 필드는 스키마에 존재해야 하며 동기화하는 모든 컬렉션에서 동일한 적격 필드 유형이어야 합니다. 인덱싱된 쿼리 가능 필드 이름은 글로벌 쿼리 가능 필드이므로 |
collection_queryable_fields_names { [collectionName: string]: string[] } | 각 컬렉션에 대한 컬렉션 수준의 쿼리 가능 필드 목록으로 컬렉션 이름을 매핑한 맵입니다. |
last_disabled number | 동기화가 마지막으로 일시 중지되거나 비활성화된 날짜와 시간으로 유닉스 시간(1970년 1월 1일 00:00:00 UTC) 이후의 시간(초)으로 표시됩니다. |
asymmetric_tables string[] | 클라이언트가 데이터를 쓸 수 있지만 읽을 수는 없는 데이터 수집을 사용하여 비대칭으로 정의된 컬렉션 이름의 배열입니다. |