320x100
320x100

Realm

: 모바일 환경을 주요 타깃으로 하는 오픈소스 DBMS

: NoSQL 방식이며, MongoDB에 인수됨

 

- 특징

: NoSQL DB를 지향하며, 데이터 모델 구조 자체가 객체 컨테이너로 구성됨

: rawSQL을 사용할  수 없으며, Realm API를 통해 실행됨. 이를통해 좀 더 직관적인 사용이 가능해지고 데이터 처리 속도가 향상됨

 

출처: Realm 공식 홈페이지

 

- 장점

: 서버에서도 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

 

[Realm] Realm이란 무엇인가?

[Realm] Realm이란 무엇인가? (글쓴날 : 2020.02.22) * 이 글은 Realm 데이터베이스에 대한 단순 소개 글입니다. Realm 소개 1) Realm이란? Realm이란 오픈 소스 데이터베이스 관리시스템(DBMS)으로 특히, 모바일

hellominchan.tistory.com

 

Realm 내부 구조와 동작 원리 자세히 살펴보기

안드로이드 개발자들을 위한 수준 있는 독립 컨퍼런스인 Droid Knights에서 “Anatomy of Realm”이라는 주제로 많은 호응을 얻은 Realm 개발자 직강입니다. 소개 Realm에서 일하고 있는 김용욱입니다. Realm

academy.realm.io

 

데이터베이스를 설계하며 배운것들:Realm 스레드 깊게 들여보기

기본적인 Realm 스레딩에 관한 글을 읽으면 Realm의 여러 기능과 스레드를 함께 사용하는 것이 생각보다 어렵지 않고 간단하다는 것을 알게 되지만, 여전히 궁금함이 남아 있을 수 있습니다. 혹시 R

academy.realm.io

 

300x250
728x90