데이터 모델 정의하기
개요
앱의 데이터 모델은 앱이 사용하는 데이터에 대한 설명입니다. 데이터 모델은 데이터가 특정 구조를 준수하고, 유효한 값만 포함하며, 예상한 방식으로만 변경되는지 확인합니다.
데이터 모델은 다음을 포함한 여러 구성 요소로 구성됩니다.
앱의 데이터 유형을 설명하는 선언적 스키마 세트입니다.
스키마 간의 논리적 연결을 정의하는 관계 세트입니다.
글로벌 상수, 환경 값 및 시크릿 값을 정의하는 데 사용할 수 있는 정적 값 세트입니다.
지정된 요청에 대한 모든 데이터의 하위 집합으로 MongoDB 작업을 동적으로 제한하는 데 사용할 수 있는 규칙 기반 쿼리 필터 세트입니다.
앱의 데이터 모델을 정의하는 것은 Device Sync 구성 및 사용의 핵심 부분입니다. 다른 App Services를 사용하기 위해 데이터 모델을 정의할 필요는 없습니다. 그러나 데이터 모델은 시간을 절약하고 상용구 코드를 작성하는 대신 기능 구축에 집중할 수 있는 여러 강력한 기능을 제공합니다.
예를 들어, 데이터 모델을 정의한 후에는 앱 관리 도구를 사용하여 네이티브 프로그래밍 언어로 동기화 가능한 Device SDK 객체 모델을 자동으로 생성할 수 있습니다. 자세한 내용은 SDK 객체 모델 생성을 참조하세요.
문서 스키마
문서 스키마는 앱에서 사용하는 특정 유형의 데이터 구조를 정의하는 JSON 객체입니다. 문서 스키마는 문서에 있는 필드, 해당 필드에 포함된 값 유형, 값 변경이 유효하기 위해 충족되어야 하는 조건을 설명합니다.
컬렉션 수준에서 스키마를 정의합니다. 즉, 각 스키마를 해당 유형의 문서를 보유하는 특정 MongoDB 컬렉션과 연결합니다. 스키마는 MongoDB의 내장 BSON types에 대한 지원을 포함하는 JSON schema 표준의 상위 집합을 사용하므로 MongoDB의 데이터를 완전히 설명할 수 있습니다.
앱은 데이터가 MongoDB에 기록될 때마다 런타임에 스키마를 적용합니다. 여기에는 API 서비스, 함수 또는 Device Sync에서의 삽입, 업데이트 및 삭제가 포함됩니다.
자세한 내용은 스키마를 참조하세요.
관계
관계는 한 문서를 0개 이상의 다른 문서와 논리적으로 연결할 수 있도록 하는 두 문서 스키마 간의 연결입니다.
관계에서 '소스' 문서는 관련 문서에 대한 참고를 저장합니다(예: 관련 문서 _id
값 목록). Realm Mobile Sync를 사용하면 App Services에서 관련 문서에 대한 참고를 자동으로 확인하므로 직접 쿼리할 수 있습니다.
자세히 알아보려면 관계를 참조하세요.
값 및 비밀
값은 앱 전체에서 다양한 방법으로 이름으로 액세스할 수 있는 명명된 상수입니다. 예를 들어, 여러 함수 정의에서 기본 URL을 복제하는 대신 값을 사용하여 외부 API 서비스의 기본 URL을 정의한 다음 값을 참조할 수 있습니다.
앱의 환경 태그에 따라 변경될 수 있는 환경 값을 정의할 수도 있습니다. 예를 들어 개발 및 프로덕션 환경에서 다른 API 기본 URL을 사용할 수 있습니다.
API 키와 같은 민감한 정보의 경우 명명된 Secret 값을 정의할 수 있습니다. 시크릿 값은 정의한 후에는 직접 노출되지 않습니다. 대신 구성 파일과 규칙 표현식에서 이름으로 참조합니다.
자세한 내용은 값과 비밀을 참조하세요.
쿼리 필터
쿼리 필터는 데이터 소스에 대한 읽기 및 쓰기 작업을 해당 소스에 포함된 모든 데이터의 하위 집합으로 제한합니다. 쿼리 필터는 데이터 소스로 전송되기 전에 작업에 자동으로 연결되는 표준 MongoDB 쿼리 및 프로젝션 객체입니다.
필터는 동적이며, 작업을 실행한 사용자 또는 기타 실행 정보에 따라 다른 조건을 적용할 수 있습니다. 컬렉션에 필터를 추가하면 상황에 따라 액세스를 제한하고 대규모 데이터 세트에 대한 쿼리 성능을 향상시킬 수 있습니다.
자세한 내용은 수신 쿼리 필터링을 참조하세요.