소피it블로그

[Core Data] 코어 데이터 정리 본문

개발_iOS/데이터 관리

[Core Data] 코어 데이터 정리

sophie_l 2022. 8. 17. 16:39

https://developer.apple.com/documentation/coredata

 

Apple Developer Documentation

 

developer.apple.com

디바이스 하나에 데이터를 저장하거나 캐싱하는 것, 혹은 CloudKit를 통해 여러 디바이스에서 데이터를 싱크하는 것

 

1. 개요

 

코어데이터를 사용하면 오프라인 사용을 위한 앱의 영구적인 데이터 저장, 일시적 데이터의 캐싱, 그리고 앱에 디바이스 하나에서 사용할 undo functionality를 추가할 수 있다. iCloud 계정 하나로 여러 개의 디바이스 상에서 데이터를 싱크하고 싶은 경우에는 Core Data는 자동적으로 스키마를 CloudKit 컨테이너에 미러링한다.

코어 데이터의 데이터 모델 에디터를 통해 데이터의 타입과 관계를 정의하고, 각 클래스 정의를 생성할 수 있다. 코어 데이터는 그 후 다음과 같은 기능을 제공하기 위해 런타임시 객체 인스턴스를 관리한다.

 

2. 영속성

 

코어 데이터는 객체들을 스토어로 매핑하는 과정의 세부 사항을 추상화함으로써, 데이터베이스를 직접적으로 관리하지 않고서 스위프트와 옵젝티브-C로부터 데이터를 쉽게 저장할 수 있게 해준다.

 

3. 단독 변경사항이나 묶음 변경사항 Undo, Redo 하기

 

코어 데이터의 undo manager는 변화 사항을 추적하고, 해당 변화들을 개별로, 또는 그룹으로, 또는 한번에 전부 롤백할 수 있다. 이를 통해 앱에 undo와 redo를 쉽게 지원해준다.

 

4. 백그라운드 데이터 태스크

 

백그라운드에서 JSON을 객체로 파싱하기 등의 UI-blocking 데이터 태스크를 잠재적으로 실행하라. 그 후 서버 우회를 줄이기 위해 결과를 캐싱하거나 저장할 수 있다.

 

5. 뷰 싱크로나이즈하기

 

코어데이터는 또한 테이블과 컬렉션 뷰에 데이터 소스를 제공함으로써 뷰와 데이터가 싱크로나이즈되게 한다.

 

6. Versioning과 Migration

 

코어데이터는 데이터의 버전관리에 대한 메커니즘과 앱이 발전해나감에 따라 유저 데이터를 이동시키는 것을 포함한다.