2020. 9. 1. 22:31ㆍiOS
이전 글에서 Core Data을 사용하는 방법을 직접적으로 보셨죠⁉️
대략적인 설명은 있었지만, 주로 사용하는 방법 위주의 간단한 설명들이었어요.
그렇다면 이번 글에서는 각각의 레퍼런스들이 어떤 역할을 하는지 알아야겠죠?
한 번 같이 알아봐요 🙌
저번 시간에 Core Data에 접근하는 방법을 생각해볼까요?
1️⃣Core Data Model에 대한 Container을 AppDelegate에 생성
2️⃣Container의 Context을 부름
3️⃣저장하고 싶은 Entity을 생성하고 그에 맞게 NSManagedObject을 생성
4️⃣원하는 값을 설정하고 Context에 NSManagedObject을 저장
대략 이런 플로우였는데, 여기서 사용되는 레퍼런스 타입에 대해 한 번 설명을 해볼게요~~
우선 Core Data을 알기 위해 애플 개발자 문서를 먼저 보는 습관은 필수겠죠⁉️
Core Data Stack의 기본적인 모식도입니다.
잘 보시면 접근하는 방법 설명에서도 본 것과 비슷한 타입들이 보이죠⁉️
그렇다면 하나하나 자세하게 살펴볼게요.
NSPersistantContainer
전체적으로 모든 것을 관리하는 최상단의 객체라고 생각하면 될 것 같다.
Core Data Stack의 생성, 관리 등을 NSMangedObjectModel, NSPersistentStoreCoordinator, NSManagedObject Context을 관리함으로 담당한다.
즉, 데이터를 저장하는 핵심 객체이다.
NSPersistentStoreCoordinator
NSMangedObjectContext와 NSPersistantContainer의 사이를 중재해주는 역할이다.
중재한다고 하는데 정확히 무슨 역할을 하는지는 모르겠다...
NSMangedObjectContext
관리 객체들의 그룹으로 이루어진 객체이다.
즉, 이 객체를 사용해 관리 객체들을 생성(create), 삭제(delete), 가져오는(fetch), 업데이트(update) 작업들을 할 수 있다.
관리 객체들에 대한 Transaction으로 이해하면 될 것 같다.
NSManagedObjectModel
각 Entitiy들의 관계, 각 객체들의 프로퍼티들에 대한 설명을 가지고 있는 객체이다.
어떤 스키마에 대한 설명들을 관리한다.
즉, 데이터 베이스 스키마라고 이해하면 될 것 같다.
NSManagedObject
NSManagedObjectModel이 데이터 베이스 스키마라고 한다면, 이 객체는 실제 데이터 모델이라고 할 수 있다.
이 객체를 생성해서 Context을 통해 저장을 한다.
즉, 실제 데이터 모델이다.
이렇게 두 번의 포스팅에 걸쳐 Core Data의 사용법과 각 객체들의 역할에 대해 알아봤어요..‼️
뭔가 서버와의 통신 없이 복잡한 데이터를 저장해야 할 경우 유용하게 사용할 수 있겠죠.
혹시 포스팅 중 잘못된 내용이 있거나 이해하기 어려운 내용이 있으면 댓글 달아주세요~~
참고 레퍼런스
'iOS' 카테고리의 다른 글
[iOS] QR Code Scanner 만들기 - AvFoundation 이용 (0) | 2020.10.16 |
---|---|
[iOS] PhotoKit 활용 - 갤러리 사진 가져오기 (2/2) (0) | 2020.10.09 |
[iOS] PhotoKit 활용 - 갤러리 사진 가져오기 (1/2) (0) | 2020.09.06 |
[iOS] Core Data 이용 데이터 관리하기 (1/2) (0) | 2020.08.26 |
[iOS] Core Location 사용 위치 정보 얻기 (2) | 2020.08.19 |