UserDefaults
- 애플에서 기본 제공됨
- key-value 쌍으로 저장하는 인터페이스
- 런타인 환경에서만 동작하면서 앱이 실행되는 동안 기본저장소에 접근해 데이터를 기록하고 가져오는 역할을 함
- 대용량의 데이터보다 단일 데이터(ex 사용자 기본 설정, 로그인 여부 등)를 저장하는데 더 적합
- 싱글톤 패턴으로 설계되어 앱 전체에 단 하나의 인스턴스만 존재
CoreData
- 애플에서 기본 제공됨
- UserDefaults와 비교하여 좀 더 방대하고 복잡한 데이터를 저장하는데 적합
- Data Model을 생성한 후 Entity를 생성한다.
SQLite
- 애플에서 기본 제공되는것이 아닌 외부 라이브러리이며, 비교적 가벼운 데이터 처리가 필요할때 적합
- CoreData는 프레임워크인것에 반해 SQLite는 데이터 베이스임
- C언어로 작성되어 있어 매우 가벼움
- 전체 데이터베이스를 디스크 파일 1개에 저장하고, 설정 자체가 매우 간편하기에 관리하기가 수월함
- iOS, Android, Linux, Window 등과 같이 다양한 운영체제에서 사용됨
Realm
- 빠른속도이지만 용량이 큼
- 설치가 쉽고 대용량의 데이터에 대해 무료로 사용 가능
- 용량에 관계없이 속도와 성능이 유지됨
- 코드가 짧고 간결함
- 메인스레드에서 데이터의 읽기, 쓰기 작업 가능
속도: Realm > CoreData > SQLite
메모리 및 저장공간 사용: Realm > CoreData > SQLite
참고
https://yeonduing.tistory.com/54
'iOS > Interview Questions' 카테고리의 다른 글
[iOS] 앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체 (0) | 2022.10.13 |
---|---|
[iOS] App thinning(앱 시닝) 이란? (0) | 2022.10.13 |
[iOS] 앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체 (0) | 2022.10.12 |
[iOS] 실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것 (0) | 2022.10.11 |
[iOS] Frame과 Bounds (0) | 2022.10.10 |