Realm
: 모바일 환경을 주요 타깃으로 하는 오픈소스 DBMS
: NoSQL 방식이며, MongoDB에 인수됨
- 특징
: NoSQL DB를 지향하며, 데이터 모델 구조 자체가 객체 컨테이너로 구성됨
: rawSQL을 사용할 수 없으며, Realm API를 통해 실행됨. 이를통해 좀 더 직관적인 사용이 가능해지고 데이터 처리 속도가 향상됨
- 장점
: 서버에서도 Realm을 사용한다면 Realm 모바일 플랫폼을 구축할 수 있고, Real-time-data sync가 가능
: 라이브 오브젝트를 통한 서버와 모바일 디바이스 간의 실시간 데이터 동기화가 가능
: 오프라인 환경에서도 기존 DB들에 비해 더 나은 사용자 경험을 제공
Realm 데이터베이스를 사용가능한 언어
: Java
: Swift
: Object-C
: JavaScript
: .NET
Realm의 내부 구조와 동작 원리
import Realm from 'realm';
class person extends Realm.Object {}
person.schema = {
name: 'pillInfo',
properties: {
id: {type: 'string', optional: true},
name: {type: 'string', optional: true},
},
};
let realm = new Realm({schema: [person], schemaVersion: 1});
export default realm;
: RealmObject 객체를 상속받아서 객체를 만들어서 모델을 생성함
: Realm 인스턴스를 열고 beginTransaction을 시작해서 copyToRealm으로 저장 후 commtiTransaction을 커밋을하여 DB에 저장
- Realm 모델 객체의 특성
: Realm 모델 객체는 특정 객체를 상속 받거나 구현해야함
: RealmObject나 RealmModel을 구현해야함
: 이렇게 만든 모델 객체는 Realm에 관리되는 managed 혹은 POJO 객체인 unmanaged 중 하나의 상태를 가짐
: 이를통해 무복제 메커니즘과 크로스 플랫폼 호환성, 자동 갱신이라는 이점을 가짐
※ POJO (Plain Old Java Object)
: 오래된 방식의 간단한 자바 오브젝트
: 특정 기술에 종속되어 동작하는것이 아닌 순수한 자바 객체를 의미
Reference
'Database > MongoDB' 카테고리의 다른 글
리눅스에서 몽고 DB 쿼리 실행하기 (mongosh) (0) | 2024.06.26 |
---|---|
SQL 쿼리와 비교하는 MongoDB 쿼리 (0) | 2022.09.25 |
MongoDB 기본 명령어 사용법 (DB / Collection / Document 다루기) (0) | 2022.09.25 |
MongoDB와 Mongoose 차이 (0) | 2021.08.03 |
몽고DB에 대한 개론 (0) | 2021.08.02 |