LocalDB비교 (Realm vs SQLite vs Core Data)

hoBahk·2022년 3월 3일
0

안녕하세요.

오늘은 제가 프로젝트를 시작할 때 localDB를 어떤 것을 할까 정하기 위해서 공부한 내용을 정리했습니다.

Realm vs SQLite vs Core Data

종류RealmSQLiteCore Data
특징- 오픈 소스 라이브러리로 모바일에 최적화된 데이터베이스 라이브러리
- 데이터 컨테이너 모델을 사용하며 데이터 객체는 Realm에 객체로 저장 (객체중심의 데이터베이스)
- 메인쓰레드에서 데이터 읽기/쓰기 가능
- 전세계적으로 가장 많이 사용 되는 데이터 베이스 엔진이며 오픈소스
- 서버가 필요없는 SQL 데이터 베이스 엔진
- Swift에서는 특별한 설치 없이 바로 사용
- iOS에서 자체 제공하기 때문에 비교적 안정적임
- Object에 더 중심을 둠
- Obejct-C에 클래스로 표현되는 객체의 내용을 저장
장점- 복잡한 Entity에 대한 매핑을 처리해야할 문제가 없으므로 Realm은 메모리 상의 객체를 디스크로 빠르게 가져올 수 있음
- 데이터 용량에 제한 없이 무료
- 대용량의 테이터와 대규모 스토리지에 상관없이 일관된 속도 및 성능을 보장
- SQLite 및 CoreData 대비 빠른 속도
- Realm Studio툴을 사용하여 DB를 시각적으로 확인
- 몇 줄의 코드로 모든 작업을 처리 가능
- 매우 작고 가벼워 전체 데이터 베이스를 하나의 디스크 파일에 저장할 수 있음
- 서버로부터 독립적이고 설정이 간편
- 다양한 OS에서 사용(Mac OS X, iOS, Android, Linux, Window)
- 여러 프로세스와 스레드로 부터 접근이 안전
- SQLite보다 더 빠르게 저장된 기록을 가져옴
- iOS에서 자체 제공하기 때문에 비교적 안정적임
단점- 외부 라이브러리를 설치해서 사용해야 하기 때문에 비교적 위험이 있음
- 메인 스레드를 사용해서 다른 스레드 접근 시 에러 발생
- 바이너리 용량이 큼
- 다양한 쿼리를 지원하지 않음
- Date Time 같은 필드가 존재하지 않음
- 성능이 Realm에 비해 좋지 않음
- SQLite보다 많은 메모리를 사용하고, 더 많은 저장공간이 필요
- 오버헤드가 발생할 가능성이 있음
- 다른 플랫폼의 OS와 공유가 되지 않음

세가지의 DB를 비교해보고 저는 Realm을 선택하기로 했습니다.
Realm은 다른 플랫폼과의 연동이 가능하고 간단한 코드로 사용이 가능하며 다른 LocalDB에 비해 성능이 가장 좋기 때문입니다.

추가할 내용이나 수정할 부분이 있다면 댓글로 남겨주시면 감사하겠습니다~!

감사합니다.

profile
호박에 줄 그어서 수박 되는 성장 드라마

0개의 댓글