본문 바로가기
YAGOM CAREER STARTER

[TIL] 20230515: CoreData/SQLite/Realm

by Rhode 2023. 5. 17.

본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다.


CoreData/SQLite/Realm

CoreData

iOS 플랫폼 단에서 지원하는 관계형 데이터베이스 라이브러리

object형식으로 저장하고 관리할 때 사용하기 좋음

SQLite보다 많은 메모리를 사용하고, 더 많은 저장공간이 필요하며, 더 빠르게 저장된 기록을 가져옴

thread-safe하지 않음

@FetchRequest라는 프로퍼티 랩퍼를 사용해 편리하게 쓸 수 있음

위젯 등을 개발할 때 데이터 연동이 편리함

 

SQLite

전세계적으로 많이 사용되는 오픈소스 기반 데이터 베이스 엔진

서버가 필요 없는 SQL 데이터 베이스 엔진을 구현

MacOS, iOS, Android, Linux, Window에서 접근 가능

매우 작고 가벼워 전체 데이터 베이스를 하나의 디스크파일에 저장 가능

설정이 간편함

여러 브로세스와 쓰레드로부터 접근이 안전함

SQL구현 가능

가장 많이 사용되기 때문에 레퍼런스 많음

 

Realm

ORM이 아니라서 백그라운드에서 적용되는 SQL쿼리문을 실행하지 않음(ORM은 데이터에 접근하는 간단한 업무도 많은 쿼리문의 작업 필요. CPU사이클과 디스크 시간을 소비하며 속도가 한순간에 느려질 수 있음)

다른 SQL 데이터 베이스와 관련이 없음

Key-Value타입의 스토어가 아닌 객체를 직접 디스크에 유지함

복잡한 Entity에 대한 맵핑을 처리해야할 문제가 없어 메모리 상의 객체를 디스크로 빠르게 가져올 수 있음

iOS와 Android간에 데이터베이스 공유가 가능함

Core Data나 SQLite에 비해 속도가 빠르고 성능이 좋음

데이터 저장에도 제한이 없음에도 무료로 이용이 가능함

메인 쓰레드에서데이터를 읽기/쓰기 작업할 수 있음

 

 

 

 

참조

https://seonshine-bibi.tistory.com/m/12

 

[iOS/Swift] Local DB 비교(Core data, SQLite, Realm)

Core Data https://developer.apple.com/documentation/coredata Apple Developer Documentation developer.apple.com Core Data: iOS 플랫폼 단에서 지원하는 관계형 데이터베이스 라이브러리 객체 형식으로 저장하고 관리할때 사용

seonshine-bibi.tistory.com

https://purple-log.tistory.com/13

 

iOS의 데이터베이스 비교 (SQLite, Core Data, Realm)

안녕하세요 :) 얼리버디 프로젝트에서 내장 데이터베이스를 사용할 일이 생겨서 찾아보던 중 iOS의 대표적인 데이터베이스에 대해 비교/정리를 하게 되었습니다! 바로 시작할게요 ~! Realm Realm이

purple-log.tistory.com

https://devmjun.github.io/archive/iOS_Databases-SQLLite_vs_Core_Data_vs_Realm

 

iOS. 에서 사용할수 있는 데이터베이스 비교하기

 

devmjun.github.io