적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/iOS

코코아 터치 프레임워크에서의 데이터 저장 방식

hongssup_ 2021. 3. 18. 15:57
반응형

앱을 실행하는 동안 생성된 모든 데이터는 기본적으로 '메모리'에 저장된다. 메모리에 저장되는 데이터는 쉽게 읽고 쓸 수 있는 반면, 앱이 종료되는 순간 모두 지워진다는 단점이 있다. 

이에 코코아 터치 프레임워크는 데이터를 반영구적으로 저장하기 위해 여러 가지 방법을 제공한다. 데이터의 내용과 형식, 그리고 규모를 고려하여 저장방식을 선택해야 한다. 

 

코코아 터치 프레임 워크에서 선택 가능한 데이터 저장 방식은 데이터의 복잡도와 특성에 따라 크게 세가지로 나눌 수 있다.

 

1. 프로퍼티 리스트

비교적 간단하고 짧으면서 키-값(key-value) 형태로 단순화할 수 있는 데이터의 저장에는 프로퍼티 리스트가 사용됨. 개인 정보나 로그인 데이터, 환경 설정값을 저장해야 할 때가 대표적인 경우.

종류 : iOS 기본 제공 프로퍼티 리스트를 사용하는 UserDefaults 방식, 직접 만들어 사용하는 커스텀 프로퍼티 리스트 방식

 

2. Core Data 또는 SQLite 같은 데이터베이스형 객체

지속적으로 추가되는 데이터나 구조적인 데이터를 저장할 때에는 데이터베이스형 객체를 사용. 수만 개 이상의 데이터도 빠르게 읽고 쓸 수 있는 만큼, 대량의 데이터를 저장하는 데 유리함. 메모장 앱의 메모 목록, 캘린더의 일정 정보, SNS 게시글 등 주로 테이블 뷰나 컬렉션 뷰 통해 표현하는 데이터 등을 저장하기에 적당하다. (관계형/목록형 데이터)

 

3. 아카이빙 Archiving

일반 데이터 타입으로 표현하기 힘든 비정형 데이터 저장할 때 사용. (비정형 객체 데이터)

데이터 자체를 그대로 저장할 수 있으므로 복잡한 데이터의 저장에 유리하지만, 다량의 데이터를 저장하기엔 적절하지 않다. 

메모리에 저장된 데이터 자체를 그대로 저장하는 기술이기 때문에, 특정 순간 인스턴스 객체에 저장된 모든 값을 통째로 캡쳐할 수도 있다. (스냅샷)

728x90
반응형