티스토리 뷰

Mobile/iOS

[iOS] CoreData Stack

out of coding 2017. 10. 18. 14:08

시작


코어 데이터라는것은 무엇인가...
아주 쉽게 이야기를 한다면, SQLite C API를 가지고 단말에서 사용하는 DB를 사용하는데, 이것을 그냥 사용하면 완전 어렵지는 않지만 머리가 아플 경우가 발생하게 된다.
그래서 애플은 이런걸 조금 더 쉽게 사용하기 위해서 코어 데이터라는것을 만들게 되었고. 우리는 이것을 이용하여 DB를 만들고 사용을 한다.
요즘은 나는 Realm을 사용하기 때문에 잘 이용을 안하지만 이것을 기존의 소스에서 변경하기 어려운 부분들도 있기 때문에 코어 데이터도 알아야 한다.



출처. Apple


참고


물론. 애플이 만든거기에 애플 사이트 가면 아주 자세하게 적혀 있다.
다른 참고할만한 사이트가 생기면 추가하도록 한다.
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/index.html#//apple_ref/doc/uid/TP40001075-CH2-SW1
https://developer.apple.com/documentation/coredata


정리


- Managed Object

데이터를 저장하기 위해 만드는 일종의 객체이다. 이 객체는 Managed Object Context에 포함되어 관리가 되며, 코어데이터에서 데이터를 추출하여 가지고 오는 형태가 된다. 데이터베이스의 관점에서는 테이블의 레코드로 생각하면 되겠다.

- Managed Object Context

앱을 개발하게 되면 코어 데이터 스택의 Managed Object Context 계층에 속해있는 Managed Object와 상호 작용을 하게 된다. Context는 영구저장소와 관련된 객체의 상태를 관리하게 되고, Managed Object Model에 의해 정의된 Managed Object의 관계를 관리하게 된다.

- Managed Object Model

엔티티를 의미하는것이며, 관계형 데이터베이스의 테이블을 정의하는 스키마와 같다. 그러므로 Managed Object에 저장되는 데이터를 정의한 속성들을 가지고 있게 된다.

- Persistent Store Coordinator

여러개의 영구 객체 저장소의 접근을 조정한다. iOS 개발자 입장에서 영구 저장소를 직접적으로 호출할 일은 없으며 이곳에서 이것을 다 관리하여 주게 된다. 물론 정말 특별한 케이스가 아니라면 하나의 저장소만을 가지고 사용을 하게 되는데, 두개 이상의 저장소를 사용하려고 할 경우에도 크게 걱정할 필요없이 이곳에서 다 알아서 해주므로 신경쓸일이 없다.

- Persistent Object Store

저장되는 공간에 대한 환경을 이야기한다. 기본적으로는 SQLite를 사용하지만 메모리 기반, XML, 바이너리로 저장이 가능하다. 개발자 입장에서는 이렇게 변경되는 저장소의 환경에 대한 염두를 둘 필요는 없고 호출하는 방식은 모두 동일하기 때문에 이런것이 있다라는것만 알고 있으면 된다.


다음 시간에는 구현하는것을 한번 글을 적도록 한다.

'Mobile > iOS' 카테고리의 다른 글

[iOS] 버전 분기  (0) 2017.10.18
[iOS/swift] CoreData 예제  (0) 2017.10.18
[iOS] Cocoa Touch Static Library 만들기  (0) 2017.10.16
[iOS/Swift4] KVO 사용하기  (0) 2017.10.10
[iOS] Code Sign / Provisioning  (0) 2017.10.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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
글 보관함