[Realm] Realm이란 무엇인가?
(글쓴날 : 2020.02.22)
* 이 글은 Realm 데이터베이스에 대한 단순 소개 글입니다.
Realm 소개
1) Realm이란?
Realm이란 오픈 소스 데이터베이스 관리시스템(DBMS)으로 특히, 모바일 환경을 주요 타깃으로 삼은 데이터베이스입니다.
(Android 및 iOS 앱 개발을 하시는 분이라면 한 번쯤 들어보셨을 SQlite와 같은 모바일 전용 데이터베이스라고 생각하시면 됩니다.)
2010년도 후반기에 Alexander Stigsen, Bjarne Christiansen이라는 두 분이 TightDB라는 프로젝트명으로 시작했으며 2014년 Realm으로 이름을 변경하였고 점차 그 가치를 인정받아 실리콘밸리의 떠오르는 스타트업으로 자리 잡았습니다.
현재 Realm은 NoSQL의 대표주자인 MongoDB에 인수되었습니다.
* Realm을 적용 중인 기업
2) Realm의 특징
Realm 데이터베이스의 특징으로는 기존의 정형화된 데이터베이스와 다르게 NoSQL 데이터베이스를 지향하며, 데이터 모델 구조 자체가 객체 컨테이너로 구성되어 있습니다. 또한, Realm 데이터베이스는 rawSQL을 사용할 수 없으며 자체의 Realm API를 통해 실행됩니다. 이를 통해 좀 더 직관적인 사용이 가능해지고 데이터 처리 속도가 향상된 장점이 있지만, 기존 데이터베이스들과 달리 Realm의 자체 사용법에 대해 조금 더 공부를 해야 하는 단점도 존재합니다.
* Realm과 타 데이터베이스의 초당 쿼리수 비교
더 나아가, 서버에서도 Realm을 사용하신다면 Realm 모바일 플랫폼을 구축하실 수 있으며 이 경우 Real-time data sync 즉, 라이브 오브젝트를 통한 서버와 모바일 디바이스 간의 실시간 동기화가 가능해집니다.
따라서, 오프라인 환경에서도 기존 데이터베이스들에 비해 훨씬 더 나은 사용자 경험을 제공합니다.
(단, Realm 모바일 플랫폼의 경우 상용 제품에 적용 시 일부 기능이 유료화되는 듀얼 라이선스입니다.)
* Realm 모바일 플랫폼 구조도
현재 Realm 데이터베이스를 사용 가능한 언어로는 아래와 같습니다.
(1) Java
(2) Swift
(3) Objective-C
(4) JavaScript
(5) .NET
여담으로 저의 경우, Realm에 관심을 갖게 된 계기가 JavaScript 환경에서 사용 가능하기 때문인데, Realm이 Node.js와 React Native를 지원하기 때문입니다.
React Native의 경우 내장 데이터베이스의 선택지로 크게 AsyncStorage, SQlite, Realm 이렇게 3가지가 있는데, AsyncStorage의 경우 소량의 간단한 데이터를 관리할 때에는 좋지만 제가 현재 기획 중인 프로젝트에는 적합하지 않다 생각하였고, 비교적 오래된 SQlite 보다는 요새 뜨고 있는 Realm에 매력을 느껴 앞으로 Realm을 열심히 공부해 조만간 저의 React Native 프로젝트에 적용해 볼 생각입니다.
여기까지 Realm 모바일 데이터베이스에 대한 소개글이었습니다.
앞서 말씀드렸듯이, Realm에 대해 관심이 생겨 조사한 것들을 정리한 글이므로 가볍게 참고만 해 주셨으면 좋겠습니다.
Realm에 대해 더 알아보고 싶으시다면...
* Realm 공식 홈페이지 : Realm 공식 홈페이지
위의 Realm 공식 홈페이지를 참조하시면 되겠습니다.
감사합니다.
'Deprecated' 카테고리의 다른 글
[React] React Hooks란 무엇인가? (2) | 2020.02.24 |
---|---|
[Troubleshooting] React, create-react-app으로 프로젝트 시작 시 템플릿 생성이 안되는 문제 (0) | 2020.02.23 |
[Go] Go 언어 예제와 기본 문법 정리 3탄(조건문 if, switch) (2) | 2020.02.17 |
[Go] Go 언어 예제와 기본 문법 정리 2탄(변수 var, 상수 const) (0) | 2020.02.16 |
[Python] Python 소개와 설치 방법 (4) | 2020.02.14 |