데이터 모델 정의하기
이 페이지의 내용
개요
앱의 데이터 모델은 앱에서 사용하는 데이터에 대한 설명입니다. 데이터 모델은 데이터가 특정 구조를 준수하고, 유효한 값만 포함하며, 예상한 방식으로만 변경되도록 보장합니다.
데이터 모델은 다음과 같은 여러 구성 요소로 이루어집니다.
앱의 데이터 유형을 설명하는 선언적 스키마 집합입니다.
스키마 간의 논리적 연결을 정의하는 관계 집합입니다.
전역 상수, 환경 값, 시크릿 값을 정의하는 데 사용할 수 있는 정적 값 집합입니다.
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에서 관련 문서에 대한 참고를 자동으로 확인하므로 직접 쿼리할 수 있습니다.
자세히 알아보려면 관계를 참조하세요.
Values & Secrets
값은 명명된 상수로, 앱 전체에서 다양한 방법으로 이름으로 액세스할 수 있습니다. 예를 들어, 여러 함수 정의에서 기본 URL을 복제하는 대신 값을 사용하여 외부 API 서비스의 기본 URL을 정의한 다음 값을 참조할 수 있습니다.
앱의 환경 태그에 따라 변경될 수 있는 환경 값을 정의할 수도 있습니다. 예를 들어 개발 환경과 프로덕션 환경에서 서로 다른 API 기본 URL을 사용할 수 있습니다.
API 키와 같은 민감한 정보의 경우 명명된 비밀 값을 정의할 수 있습니다. 비밀 값은 정의한 후에는 절대 직접 노출되지 않습니다. 대신 구성 파일과 규칙 표현식에서 이름으로 참조합니다.
자세한 내용은 값 및 시크릿을 참조하세요.
쿼리 필터
쿼리 필터는 데이터 소스에 대한 읽기 및 쓰기 작업을 해당 소스에 포함된 모든 데이터의 하위 세트로 제한합니다. 쿼리 필터는 데이터 원본으로 전송되기 전에 작업에 자동으로 연결되는 표준 MongoDB 쿼리 및 프로젝션 개체입니다.
필터는 동적이며 작업을 실행한 사용자 또는 기타 실행 정보에 따라 다른 조건을 적용할 수 있습니다. 컬렉션에 필터를 추가하면 상황에 맞게 액세스를 제한하고 대규모 데이터 세트의 쿼리 성능을 개선할 수 있습니다.
자세한 내용은 수신 쿼리 필터링을 참조하세요.