티스토리 뷰
Framework
CoreData
코어데이터(CoreData)는 iOS 프레임워크 중 하나로, 단일 기기 상에서의 데이터 저장, 유지, 실행 취소 등의 작업을 지원하는 프레임워크입니다.
코어데이터 프레임워크는 iOS 3.0 / macOS 10.4 / watchOS 2.0 버전 이상에서 지원하고 있습니다.
Overview
개요
어플리케이션 내에서 영구적으로 관리하고 싶은 데이터, 오프라인상태에서도 유지하고 싶은 데이터가 있다면, CoreData 프레임워크를 사용할 수 있습니다. 또한 코어데이터(CoreData) 프레임워크를 사용하면 단일기기에서 임시데이터 관리, 영구데이터 관리, 실행 취소 등의 기능을 사용할 수 있습니다.
코어데이터(CoreData)의 데이터 모델 편집기(Data Model editor)를 통해서, 관리하고자 하는 데이터타입들과 그들의 관계를 정의할 수 있습니다. 또한 각각의 클래스 정의를 생성할 수도 있습니다.
코어데이터(CoreData)는 런타임 과정에서 객체 인스턴스들을 관리할 수 있게 해주는데요. 그 기능에 대해서 알아보겠습니다.
데이터 지속 관리
코어데이터(CoreData)는 저장하기 위한 당신의 객체들에 대한 맵핑된 상세사항들을 추상화해줍니다. 또한 데이터들을 Swift, Objective-C언어로부터 저장하기 쉽게 만들어줍니다. 직접적인 데이터베이스 관리 없이도 말이죠. 🤩
데이터 변경사항에 대한 실행취소/재실행 기능
코어데이터(CoreData)의 실행 취소 관리자(undo manager)는 데이터 변화를 추적하고, 개별적/그룹/전체적인 롤백(실행취소)를 할 수 있도록 지원합니다. 이로써 당신의 앱 내에서 데이터 변화의 적용, 적용 취소를 편하게 관리할 수 있습니다.
백그라운드 상의 데이터 작업 지원
JSON을 객체로 파싱하는 등의 잠재적 UI-Blocking(UI 동작을 방해할 수 있는) 데이터 작업을 백그라운드에서 동작하게 해줍니다.
그 후 얻게되는 결과들을 캐싱, 저장해서 불필요한 서버 작업이 일어나지 않도록 할 수 있습니다.
뷰 동기화
코어데이터(CoreData)는 테이블뷰 / 컬렉션뷰 등의 UI에게 섹션, 행, 열, 아이템을 관리해주는 데이터 소스(DataSource)를 제공함으로서 뷰와 데이터가 동기화되도록 해줍니다.
버전 관리 및 데이터 이전 기능
코어데이터(CoreData)는 데이터모델의 버전관리, 버전 업데이트에 따른 유저 데이터의 이전등을 할 수 있도록 지원합니다.
Singleton 등을 사용해서 앱 실행 간, UserDefaults를 활용해서 백그라운드 상에서의 데이터 유지가 가능하지만, 보다 체계적인, 복잡한 구조의 데이터 관리가 있을 수록 관리 상 비효율 적인 동작을 수행하는 단점이 있습니다.
userDefaults를 통해 plist에 데이터를 저장하는 방식은 어떤 변화가 발생했을때 변화가 있는 데이터 이외 전체적인 갱신이 일어날 수 있기 때문입니다.
그렇기에 데이터에 대한 보다 효율적인 관리가 가능한 CoreData에 대한 관심을 가지고, 조금씩 사용해봐야겠다는 생각이 듭니다.
오늘은 iOS CoreData의 코어데이터 개요, 지원기능에 대한 개발자 문서를 읽어보았습니다. 🤗
담에도 기회되면 CoreData 사용 관련 포스팅을 해보겠습니다. 즐거운 하루 되세요 ^-^//
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
Swift FileManager 파일삭제, removeItem 메서드 개요 (0) | 2020.09.19 |
---|---|
iOS Foundation, FileManager 개발자문서 개요 읽기 (0) | 2020.09.17 |
iOS UICollectionViewFlowLayout 개발자 문서 개요 (0) | 2020.08.21 |
iOS UITableView, reloadData 개요 및 참고사항 (0) | 2020.08.20 |
iOS UIView 업데이트, layoutIfNeeded 메서드 개요 (0) | 2020.08.19 |
- Total
- Today
- Yesterday
- Swift 알고리즘
- 개발자문서
- publisher
- 김프매매
- 부스트코스
- 백준알고리즘
- swift reduce
- 자연어처리
- Protocol
- swift언어
- swift 기초
- swift
- swift알고리즘
- 컬렉션
- Collection
- uikit
- 프로토콜
- swift string
- 프로그래머스
- 스위프트
- ios
- 알고리즘
- SwiftUI
- swift문제
- createML
- 프로그래머스swift
- CoreML
- 백준swift
- swift 문자열
- 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |