MongoDB Realm Documentaion을 보고 정리한 내용입니다.
이를 바탕으로 MongoDB Realm을 이용한 iOS 앱을 만들 것입니다.
따라서 iOS 개발 관련 부분만 정리할 예정입니다.
MongoDB Realm Documentation 중 현재 포스트의 부분은 아래와 같습니다.
MongoDB Realm - Get Started - Introduction for Mobile Developers
[iOS - MongoDB Realm] 포스트
[iOS - MongoDB Realm] 1. MongoDB Realm
[iOS - MongoDB Realm] 2. Get Started - Introduction to MongoDB Realm for Mobile Developers
[iOS - MongoDB Realm] 3. Tutorial - Create a Task Tracker App - iOS Swift Tutorial
[iOS - MongoDB Realm] 3-1. Tutorial - Set up the Task Tracker Tutorial Backend
[iOS - MongoDB Realm] 3-2. Tutorial - iOS Swift Tutorial
next
모바일 개발자를 위한 MongoDB Realm 소개
모바일 애플리케이션을 개발하는 개발자를 위해 MongoDB Realm 제품을 높은 수준으로 설명합니다.
읽은 후에는 MongoDB Realm이 무엇인지, Realm 데이터베이스와 어떻게 상호 작용하는지, 그리고 기존 모바일 개발 스택에 비해 MongoDB Realm이 제공하는 이점이 무엇인지 이해할 수 있습니다.
MongoDB Realm은 어떤 문제를 해결합니까?
개발자는 모바일 애플리케이션을 개발하는 동안 여러 가지 문제에 직면합니다.
예를 들어 아래와 같은 작업들을 처리해야 합니다.
-
연결이 끊길 수 있고, 장치가 언제든지 종료될 수 있으며, 클라이언트는 일반적으로 릴리스 후 상당한 지연을 겪고 업데이트되는 예측 불가능한 모바일 앱 환경을 정상적으로 처리합니다.
-
모바일 클라이언트, 백엔드 API 및 데이터베이스를 조정하여 통신할 객체 및 엔드 포인트의 공통 스키마를 유지합니다.
-
HTTP 프로토콜에서 API 엔드 포인트, 클라이언트에 저장된 데이터에 이르기까지 에코 시스템의 모든 구성 요소에 대한 보안 취약성을 파악합니다.
-
네트워크, 데이터베이스 스토리지 및 애플리케이션 메모리 간에 객체를 일관되게 직렬 화합니다.
-
하나 이상의 모바일 운영 체제를 위한 언어 및 프레임 워크로 프로그래밍합니다.
이러한 모든 작업들은 서로 다른 문제들을 야기합니다.
그리고 이는 다양한 라이브러리와 프레임 워크를 사용하여 각각을 개별적으로 해결할 수 있습니다.
각 사례에 적합한 절충안으로 각 문제를 해결하는 솔루션을 결정하는 것은 대부분의 개발자가 너무 잘 알고 있는 과제입니다.
하지만 각 구성 요소가 개별적으로 제시하는 문제 외에도 여러 구성 요소를 결합하면 더 많은 문제가 발생합니다.
예를 들어 Android 클라이언트에서 Java 라이브러리를 사용하여 해당 환경에서 객체를 직렬화 할 수 있지만 Android, iOS, 웹 및 각 백엔드 서비스에서 일관되게 직렬화하면 더 많은 문제가 발생합니다.
그래서 Realm 데이터베이스에서는 이런 다양한 문제들을 해결할 것이다를 아래에서 말하기 위한 서론이랄까...?
Realm Database
네트워크 안정성, 로컬 스토리지, UI 반응 유지(기본 데이터 변경에 따른 업데이트)를 포함하여 모바일 환경의 특수성으로 인해 다양한 문제가 발생합니다.
Realm 데이터베이스는 많은 모바일 프로그래밍 문제를 해결합니다.
* 로컬 저장소
- Realm 데이터베이스는 클라이언트 장치에서 바로 실행됩니다.
- 각 플랫폼에 대한 기본 쿼리 언어를 사용하여 개체에 액세스 하므로 데이터 저장, 액세스 및 업데이트가 간단하고 간단합니다.
* 네트워크 안정성
- Realm 데이터베이스는 오프라인 우선입니다.
- 네트워크를 통하지 않고 항상 로컬 데이터베이스에서 읽고 씁니다.
- Realm Sync가 활성화되면, Realm 데이터베이스는 백그라운드 스레드에서 네트워크를 통해 로컬 데이터 변경 사항은 push 하고, 원격 변경 사항은 pull 하며 데이터를 MongoDB Realm과 동기화합니다.
- Sync Protocol 동기화 프로토콜은 각 클라이언트에서의 충돌을 지속적으로 해결합니다. 자세한 내용은 MongoDB Atlas Cluster를 참고하세요.
* 반응형 UI :
- Live objects는 항상 Realm 데이터베이스에 저장된 최신 데이터를 반영하고 변경 사항을 구독할 수 있으므로 UI를 항상 최신 상태로 유지할 수 있습니다.
또한 Realm SDK를 사용하면 Android, iOS, Node.js, React Native 및 UWP 개발을 위한 로컬 영역에 연결할 수 있습니다.
MongoDB Atlas
클라이언트 애플리케이션은 많은 데이터를 생성합니다.
업로드된 리뷰 및 평가, 블로그의 게시물 및 댓글, 주방의 인벤토리 등 데이터를 어딘가에 저장해야 합니다.
MongoDB Atlas는 항상 사용 가능한 MongoDB의 클라우드 호스팅 관리형 인스턴스를 제공합니다.
Atlas는 MongoDB의 전체 기능을 통해 집계 및 기타 복잡한 워크로드를 지원합니다.
다양한 언어의 MongoDB 드라이버를 사용하여 백엔드 서비스의 Atlas 인스턴스에 연결할 수 있습니다.
또는 Atlas 인스턴스를 MongoDB Charts에 연결하여 데이터를 실시간으로 시각화할 수도 있습니다.
Atlas에 데이터를 저장하면 사용자와 플랫폼 간에 데이터를 쉽게 공유할 수 있습니다.
MongoDB Realm
MongoDB Realm은 Realm 데이터베이스와 MongoDB Atlas 간의 동기화를 가능하게 하여 두 구성 요소를 모바일 앱용 애플리케이션 레이어로 원활하게 연결합니다.
이러한 서비스를 지원하기 위해 MongoDB Realm은 몇 가지 일반적인 애플리케이션 요구 사항을 충족하는 구성 요소도 제공합니다.
-
Realm 사용자 및 인증 은 Facebook , Google 및 Apple과 같은 타사 인증 제공 업체에 쉽게 통합되는 내장 사용자 관리 기능을 제공합니다.
-
Realm 함수는 Realm app에 서버 측 로직을 제공합니다. REST API의 엔드 포인트와 비슷하지만 HTTP 엔드 포인트 호출을 위해 URL, 헤더, 본문 및 메서드를 수동으로 구성하는 대신 클라이언트 애플리케이션의 Realm SDK 모듈에서 Realm 함수를 호출합니다.
-
Realm 트리거는 예약된 시간에 또는 데이터베이스 변경이나 HTTP 엔드 포인트 호출과 같은 이벤트가 발생할 때 자동으로 함수를 실행합니다.
-
영역 규칙을 사용하면 누가 어떤 데이터에 액세스 하는지 제어할 수 있습니다.
-
서버 측 Realm 값과 Realm 비밀을 사용하면 전역 변수와 개인 자격 증명을 한 번 정의하고 전체 Realm 앱에서 사용할 수 있습니다.
-
표준 GraphQL 클라이언트를 사용하여 연결된 MongoDB 클러스터에 저장된 데이터에 액세스 하려면GraphQL의 API를 사용하세요.
또한 Realm 모바일 SDK를 사용하면 함수를 호출하고, 사용자를 인증하고, 원격 영역을 동기화하고, 로컬 영역을 쿼리 할 수 있습니다.
MongoDB Realm 시작하기
바로 MongoDB Realm 애플리케이션 만들기를 하거나 아래 플랫폼에 따른 Task Tracker 앱 만들기 튜토리얼로 시작해보세요.
Swift와 iOS 부분만 정리할 예정입니다.
또는 각 클라이언트 SDK에 대한 설명서를 참조할 수도 있습니다.
-
Kotlin 및 자바 용 Android SDK
-
Swift 및 Objective-C 용 iOS SDK
-
C # / Xamarin 용 .NET SDK
-
TypeScript 및 JavaScript 용 React Native SDK
요약
* MongoDB Realm은 배포 및 확장에 대한 세부 사항을 처리하는 서버리스 애플리케이션 플랫폼입니다. 함수와 트리거를 통한 사용자 지정 로직, 규칙을 통한 사용자 지정 권한, 타사 SSO를 통한 인증으로 Realm 앱을 사용자 지정할 수 있습니다.
* Realm 데이터베이스는 ORM 없이 라이브 객체에 직접 액세스하고 저장할 수 있는 오프라인 우선 모바일 객체 데이터베이스입니다.
* Live Objects 및 Realm Sync는 기존 모바일 개발 스택에 비해 상당한 이점을 제공합니다.
- 라이브 오브젝트는 항상 데이터베이스의 최신 데이터 상태를 반영하므로 변경 사항의 출처에 관계없이 UI를 데이터 변경 사항과 동기화하기가 더 쉽습니다.
- Realm Sync는 클라이언트 측 영역과 Realm 앱에 연결된 서버 측 MongoDB Atlas 클러스터 간에 데이터를 동기화합니다. 동기화 프로토콜은 서버와 클라이언트 애플리케이션 모두에서 영역의 모든 인스턴스에서 일관되게 충돌을 해결합니다.
- Realm 데이터베이스는 백그라운드 스레드에서 데이터를 동기화하여 네트워크 사용량을 추상화하므로 대기 시간, 시간 초과 또는 연결 끊김에 대해 걱정할 필요가 없습니다.
댓글