[iOS] 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체의 종류

민경준·2023년 11월 29일
0

UserDefaults

  • Apple의 기본 Library
  • key-value 쌍으로 저장하는 인터페이스
  • 런타임 환경에서만 동작하며, 기본 저장소에 접근해 데이터를 read/write 하기 때문에
    값이 필요 할 때마다 데이터 베이스를 열어 볼 필요가 없다.
  • 대용량의 데이터보다 단일 데이터(ex 사용자 기본 설정, 로그인 여부 등)를 저장하는데 더 적합
  • 싱글톤 패턴으로 설계되어 앱 전체에 단 하나의 인스턴스만 존재

CoreData

  • Apple의 기본 Library
  • UserDefaults와 비교하여 좀 더 방대하고 복잡한 데이터를 저장하는데 적합
  • Data Model을 생성한 후 Entity를 생성한다.
  • SQLite에 비해 더 많은 저장공간과 메모리를 필요로 하지만 더욱 빠르게 데이터를 가져올 수 있다.
    (테이블 없이 객체를 통해 데이터를 운영하기 때문이다.)

SQLite

  • 애플에서 기본 제공되는것이 아닌 외부 라이브러리이며, 비교적 가벼운 데이터 처리가 필요할때 적합
  • CoreData는 프레임워크인것에 반해 SQLite는 데이터 베이스임
  • C언어로 작성되어 있어 매우 가벼움
  • 전체 데이터베이스를 디스크 파일 1개에 저장하고, 설정 자체가 매우 간편하기에 관리하기가 수월함
  • iOS, Android, Linux, Window 등과 같이 다양한 운영체제에서 사용됨
  • 수많은 프로세스와 스레드의 접근으로부터 안전합니다.

Realm

  • 모바일에 최적화 된 라이브러리이며, 빠른속도이지만 용량이 큼
  • 설치가 쉽고 대용량의 데이터에 대해 무료로 사용 가능
  • 용량에 관계없이 속도와 성능이 유지됨
  • 코드가 짧고 간결함
  • 메인스레드에서 데이터의 읽기, 쓰기 작업 가능

속도: Realm > CoreData > SQLite
메모리 및 저장공간 사용: Realm > CoreData > SQLite









Reference

profile
iOS Developer 💻

0개의 댓글