728x90

React Native 로 개발하다보면 사용하는 내장 DB 로

Realm, sqlite, Core Data

등(?)..이있다.. 

차이점으로

종류 Realm SQLite Core 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에서 자체 제공하기 때문에 비교적 안정적임
단점 - 외부 라이브러리를 설치해서 사용해야 하기 때문에 비교적 위험이 있음
- main thread 이용하기 때문에 thread 접근하면 에러남으로 인해 스레드 지정해정야함.
- 바이너리 용량이 큼
- 다양한 쿼리를 지원하지 않음
- ios8부터 지원가능
- Date Time 같은 필드가 존재하지 않음
- 성능이 Realm에 비해 좋지 않음
- rite 경우 테이블이 아닌 DB에 Lock을 걸기떄문에 주의해야됨.
- SQLite보다 많은 메모리를 사용하고, 더 많은 저장공간이 필요
- 오버헤드가 발생할 가능성이 있음
- 다른 플랫폼의 OS와 공유가 되지 않음

어떤것을 사용할지는 본인의 선택!!

 

728x90

+ Recent posts