면접 질문
Q) 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가?
UserDefaults
•
키-값 쌍으로 저장하는 인터페이스
•
런타임시 개체를 이용하여 기본 데이터베이스에서 사용하는 기본값을 읽어오기 때문에 값이 필요할 때마다 데이터베이스를 열 필요가 없다.
•
대용량의 데이터보다 자동 로그인 여부, 아이디, 환경 설정에서의 설정 데이터 값과 같은 단일 데이터 등을 보관한다.
CoreData
•
객체 그래프를 관리하기 위한 프레임워크이다.
•
SQLite와 같이 테이블을 이용하지 않고, 객체를 생성하여 데이터를 운영하기에 더 많은 저장 공간과 메모리를 필요로 한다. 그렇지만 더욱 빠르게 데이터를 가져온다.
•
데이터 모델을 생성한 후, Entity를 생성한다.
SQLite
•
Swift에는 특별한 설치 없이 바로 사용할 수 있다.
•
C언어로 작성되어 있어 매우 가벼운 것이 특징이며, 전체 데이터베이스를 디스크 파일 1개에 저장하고, 설정 자체가 매우 간편하기에 관리하기가 수월하다.
•
SQLite에는 iOS, Android, Linux, Window 등과 같이 다양한 운영체제에서 사용된다.
•
수많은 프로세스와 스레드의 접근으로부터 안전한다.
Realm
•
SQLite와 같이 오픈소스이며, 모바일에 최적화된 라이브러리다.
•
SQLite, Core Data 보다 속도가 빠르고 성능면에서 더 우수하다.
•
많은 작업들을 처리하기 위해 코드가 많이 필요하지 않으며, 메인 스레드에서 데이터의 읽기, 쓰기 작업을 모두 할 수 있어 편리하다.
•
대용량의 데이터에 대해 무료로 사용할 수 있으며, 용량이 적고 큼에 상관없이 속도와 성능이 유지된다.