[swift] CoreData

mmim·2022년 6월 20일
0
post-thumbnail

CoreData

  • Core Data는 App에서 모델 계층 개체를 관리하는 Framework
  • Core Data는 Database가 아니다❌

Core data의 기능

1️⃣ Persistence(영속성)

  • Core Data는 객체를 저장소에 매핑하는 세부 정보를 추상화하여 DB를 직접 관리하지 않고도 Swift 데이터를 쉽게 저장할 수 있다.

2️⃣ 개별, 일괄 변경 사항 Undo, Redo

  • Core Data의 실행 취소 관리자는 변경 사항을 추적하고 개별적으로나 그룹적으로 한 번에 롤백할 수 있어 앱에 Undo 및 Redo를 쉽게 추가할 수 있다.

3️⃣ 백그라운드 데이터 작업

  • 백그라운드에서 JSON을 객체로 구문 분석하는 것과 같은 데이터 작업을 수행한다. 그런 뒤 결과를 캐시 하거나 저장하여 서버에 갔다 오는 횟수를 줄일 수도 있다.

4️⃣ 동기화

  • Core Data는 테이블, 컬렉션 뷰에 대한 Data Source를 제공하여 뷰와 데이터를 동기화 상태로 유지하는데 도움을 준다.

5️⃣ 버전 관리 및 Migration

  • Core Data에는 데이터 모델의 버전을 관리하고 앱이 발전함에 따라 사용자 데이터를 마이그레이션하는 메커니즘이 있다.

참고: https://icksw.tistory.com/224

CoreData Persistence

0️⃣ Persistent container - **NSPersistentContainer**의 인스턴스는 모델, 컨텍스트 및 매장 코디네이터를 한 번에 설정

1️⃣ Model:
- NSManagedObjectModel의 인스턴스는 앱의 유형, 속성 및 관계를 설명하는 앱의 모델 파일을 나타낸다.
- CoreData > Model Data 파일을 생성 했을 때 만들어지는 .xcdatamodeld 파일 내 객체들을 설명하는 클래스
- Model에 따른 각각의 Entity를 설명하는 Database 스키마
- managed objects의 structure를 정의

2️⃣ Context:
- NSManagedObjectContext의 인스턴스는 앱 유형의 인스턴스에 대한 변경 사항을 추적한다.
- transaction 정도로 생각하면 편함
- managed objects를 생성하고, 저장하고, 가져오는(fetch) 작업같은 걸 제공

3️⃣ Store:
- NSPersistentStoreCoordinator스토어에서 앱 유형 의 인스턴스를 저장하고 가져오는 인스턴스
- 모델을 통해 context와 persistent를 저장하는 걸 도와주는 클래스
- persistent storage(영구 저장소)와 managed object model을 연결

참고
:https://developer.apple.com/documentation/coredata/setting_up_a_core_data_stack
:https://zeddios.tistory.com/987

profile
예비 iOS 개발자의 기록

0개의 댓글