-
Notifications
You must be signed in to change notification settings - Fork 0
CoreData, Persistence
Jinwon Choi edited this page Mar 19, 2025
·
1 revision
CoreData는 Database가 아니다. CoreData의 수많은 기능 중 하나가 Persistence이다.
Persistence 외에도 아래와 같은 기능을 제공합니다.
- Undo and redo of individual and batched changes
- Background data tasks
- View synchronization
- Versioning and migration
하지만 이 문서에서는 Persistence에 대해서 알아보겠습니다.

앱 모델을 관리하고 유지하는 역할을 수행한다.

-
NSManagedObjectModel
- 데이터 구조를 정의합니다. 데이터베이스의 테이블에 해당하는 엔티티(Entity)와 그 속성(attribute)을 정의하는 역할을 수행한다.
- like DB 스키마
- 이 모델은 Xcode에서
.xcdatamodeld파일로 정의하며, Entity, Attribute, Relationship 등을 설정한다.
-
NSPersistentStoreCoordinator
- 실제 데이터를 저장하는 장소인 persistent storage와 managed object model를 연결하는 역할을 합니다.
- like transaction
- 이 컴포넌트는 데이터를 저장하고, 읽어오고, 관리하는 데 필요한 로직을 처리합니다. 예를 들어, SQLite 파일을 저장소로 사용할 때 이 저장소와의 연결을 관리한다.
-
NSManagedObjectContext
- 메모리 내에서 데이터를 관리하는 데 사용되며, 실제로 데이터를 추가, 삭제, 수정하는 작업을 수행합니다.
- Managed Object를 생성하고 저장하고 가져오는(fetch) 역할을 수행한다.
- MOC는 객체 그래프와 상호작용하는데 중요한 역할을 하며, 데이터를 변경하고 이를 영속 저장소에 저장하기 전에 임시적으로 데이터를 관리합니다.
- MOC는 데이터 변경을 추적하며, 변경 사항을 저장소에 반영하기 위해 save() 메서드를 호출해야 합니다.
-
NSPersistentContainer
- 데이터를 실제로 저장하는 장소입니다. Core Data는 다양한 유형의 영속 저장소를 지원합니다:
- SQLite: 일반적으로 많이 사용되는 데이터베이스 형식.
- Binary: 데이터를 바이너리 형태로 저장.
- In-memory: 메모리 내에만 데이터를 저장.
- 이 저장소는
NSPersistentStoreCoordinator에 의해 관리됩니다.
- 데이터를 실제로 저장하는 장소입니다. Core Data는 다양한 유형의 영속 저장소를 지원합니다:
-
모델 생성:
NSManagedObjectModel을 사용하여 데이터를 저장할 구조를 정의합니다. -
Persistent Store Coordinator 설정: 영속 저장소를 설정하고,
NSPersistentStoreCoordinator를 통해 데이터 저장소를 연결합니다. -
Managed Object Context 설정:
NSManagedObjectContext를 생성하여 데이터를 다룰 공간을 만듭니다. -
데이터 변경 및 저장:
NSManagedObjectContext를 사용하여 데이터를 추가, 수정, 삭제하고, 변경 사항을save()메서드를 호출하여 영속 저장소에 반영합니다.
NI, MPC
리팩토링/리디자인
테스트
Supabase
- 배현진
- 윤지성
- 최진원
- 허혜민