Docs Menu
Docs Home
/ /
Atlas App Services
/ /

데이터 모델 만들기

이 페이지의 내용

  • 개요
  • 전제 조건
  • Realm 객체 모델에서 App Services 스키마 생성
  • App Services 스키마에서 Realm 객체 스키마 생성
  • 추가 읽기

Device Sync 데이터 모델은 Atlas Device SDK에서 사용되는 Realm 객체 스키마와 Atlas App Services로 구성된 두 가지 일관된 스키마로 구성됩니다.

Realm 객체 스키마를 먼저 사용하거나 또는 App Services 스키마를 통해 앱의 데이터 모델을 만들 수 있습니다.

  • Realm 객체 스키마 App Services 스키마 생성: 모바일을 우선하여 개발 중이고 Atlas 클러스터에 아직 데이터가 없는 경우 Realm 객체 스키마를 App Services 스키마로 변환할 수 있습니다.

  • Atlas App Services 스키마에서 Realm 객체 스키마 생성하기: 사용자의 MongoDB Atlas 클러스터에 이미 데이터가 있다면 MongoDB가 해당 데이터를 샘플링하여 스키마를 생성합니다. 그런 다음 Atlas App Services가 Realm SDK로 해당 스키마를 Realm 객체 스키마로 변환하여 Atlas Device SDK로 모바일 애플리케이션에서 사용할 수 있습니다.

어떤 접근 방식을 사용하든, 각 데이터 모델을 사용하도록 Atlas 클러스터와 모바일 애플리케이션을 모두 구성하면 서버와 클라이언트 간에 데이터 모델에 대한 변경 사항이 자동으로 업데이트됩니다.

스키마를 만들려면 앱에 연결된 데이터 소스가 하나 이상 있어야 합니다.

그러나 서버리스 인스턴스 또는 연합 데이터베이스 인스턴스와의 동기화는 사용할 수 없습니다.

모바일 클라이언트 SDK를 통해 Realm 객체 스키마를 변경하거나 정의할 수 있습니다. Realm 객체 스키마에 대한 변경은 개발 모드가 활성화된 경우에만 허용됩니다. App Services는 이러한 변경 사항을 App Services 스키마의 Realm 객체 스키마에 반영합니다.

Realm 객체 스키마 생성과 관련된 정보는 Atlas Device SDK용 설명서를 참조하세요.

1

개발 모드는 App Services UI에서 설정됩니다.

개발 모드를 활성화하려면 Development Mode 오른쪽에 있는 슬라이더를 클릭합니다.

개발 모드를 활성화하는 UI
클릭하여 확대
2

애플리케이션을 계속 개발해 나가는 과정에서 변경 사항에 따라 다양한 데이터 유효성 검사 규칙을 실행하도록 데이터 모델을 수정해야 합니다. Development Mode가 켜져 있는 동안에는 클라이언트 코드에서 Realm 객체 스키마를 편집할 수 있습니다. 데이터 유효성 검사는 Development Mode가 꺼져 있을 때 실행되므로 Development Mode가 켜져 있지 않을 때는 App Services에서 Realm 객체 스키마의 변경 사항을 받아들이지 않습니다.

중요

Primary Key _id 필수

Atlas Device Sync로 작업하려면 데이터 모델에 _id(이)라는 프라이머리 키 필드가 있어야 합니다. _id의 유형은 string, int 또는 objectId일 수 있습니다.

예시

소셜 미디어 애플리케이션을 개발하고 있는 그룹이 있습니다. 이 그룹이 애플리케이션을 처음 개발할 때 사용자의 생일은 사용자 데이터 모델의 필수 필드였습니다. 그러나 저장되는 사용자 데이터의 양에 대한 개인 정보 보호 문제로 인해 경영진은 사용자의 생일 필드를 선택 필드로 만들도록 요청하게 되었습니다. 애플리케이션 개발자는 App Services UI에서 Development Mode 기능을 활성화한 다음 클라이언트 코드 내에서 사용자 모델을 편집합니다.

const realmObjectModel = {
name: 'User',
properties: {
_id: 'objectId',
_partition: 'string',
name: 'string',
// developers set optional: true to adhere to the new requirement
birthday: {type: 'date', optional: true},
},
primaryKey: '_id'
};
Realm.open({schema: realmObjectModel, sync: {/*...*/}})
.then(realm => {
// ... use the realm instance to read and modify data
})
3

Development Mode이(가) 켜져 있는 동안에는 App Services가 데이터 모델에 대한 쓰기 유효성을 검사하지 않으므로 Realm 객체 모델을 자유롭게 업데이트할 수 있습니다. Development Mode을(를) 끄면 MongoDB App Services는 자동으로 App Services 스키마를 업데이트하고 이를 기반으로 Atlas 클러스터에 대한 데이터 유효성 검사를 시행하기 시작합니다.

Sync 화면에서 Development Mode 옆에 있는 슬라이더를 클릭해 Development Mode를 끕니다. UI는 개발 모드가 꺼진 상태임을 의미합니다.

Development Mode(개발 모드)를 표시하는 UI가 비활성화되었습니다.
클릭하여 확대

참고

모바일 클라이언트 코드에서 향후 데이터 모델 업데이트를 수행하려면 이 절차를 다시 수행하면 됩니다.

1

먼저 App Services 스키마가 정의되어 있는지 확인합니다. App Services는 이 App Services 스키마를 Realm Object Schema로 변환하여 모바일 애플리케이션에서 구성하고 활용할 수 있도록 합니다.

다음 요구 사항에 유의하세요.

  • App Services 스키마에는 _id 라는 기본 키 필드가 반드시 있어야 합니다. _idstring, int, objectId 유형일 수 있습니다.

  • 스키마 개체 유형 이름은 57 UTF-8 문자를 초과할 수 없습니다.

2

Realm Object Schema(Realm 객체 스키마)는 모바일 클라이언트 애플리케이션에서 데이터를 정의하고 그 유효성을 검사합니다. Realm Object Schema(Realm 객체 스키마)를 보려면 Atlas Device SDKs 페이지로 이동한 다음 Realm Object Models 탭을 클릭하세요. 이 페이지에서는 App Services 스키마를 선택한 언어로 생성된 Realm Object Schema(Realm 객체 스키마)로 볼 수 있습니다.

UI에 표시된 생성된 Realm 객체 모델과 관련 경고
클릭하여 확대
3

생성된 Realm Object Schema(Realm 객체 스키마)는 클라이언트 애플리케이션에서 사용할 수 있습니다. 데이터 모델로 데이터 유효성 검사 실행을 시작하려면 Realm Object Schema(Realm 객체 스키마)를 사용하여 영역을 열면 됩니다. 이렇게 하면 모바일 클라이언트에서 부적절한 데이터가 데이터베이스에 입력되는 것을 방지할 수 있습니다.

모바일 애플리케이션 코드에 통합하려는 Object Model(객체 모델)에 대한 Realm Object Schema(Realm 객체 스키마)의 오른쪽에 있는 Copy를 클릭하세요. 그러면 선택한 SDK의 Realm Object Schema(Realm 객체 스키마) 코드가 클립보드로 복사됩니다.

IDE에서 모바일 애플리케이션 코드를 열고 Realm Object Schema(Realm 객체 스키마)를 붙여 넣으세요.

const UserSchema = { // your copied and pasted Realm Object Schema
name: 'User',
properties: {
_id: 'objectId',
_partition: 'string',
name: 'string',
birthday: 'date'
},
primaryKey: '_id'
};
// Initialize a realm with your Realm Object Schema
Realm.open({schema: UserSchema, sync: { /* ... */ }})
.then(realm => {
// ... use the realm instance to read and modify data
})

Realm 객체 스키마 생성과 관련된 정보는 Atlas Device SDK용 설명서를 참조하세요.

돌아가기

동기화 데이터 모델 개요