티스토리 뷰

freepik.com

 

CoreData에 대해 공부하면서 많은 블로그와 글에서 CoreData는 DataBase가 아닙니다 라는 글을 보았습니다.

개인적으로 CoreData는 로컬 디바이스에 간단한 캐시 데이터를 저장, 수정, 삭제 등을 할 수 있다는 점에서 DataBase 와 비슷하지 않나?라고 생각했었는데 아니라고 하니 좀 당황스럽더라구요 ㅎㅎ;

 

대부분 이유까지는 적어놓지 않으셨기에 관련해서 여러 글을 찾아보게 되었고 이후 저와 같은 궁금증을 가질 누군가를 위해 찾아본 글들을 취합하여 정리해보려고 합니다.

 


 

CoreData는 DataBase가 아닙니다. 라는 말은 간혹 서버 개발자들이 CoreData에 DataBase를 다루던 것 마냥 관습적으로 접근하는 것을 막기 위한 말이라고 합니다.

 

CoreData의 목적은 DataBase와 달리 데이터를 유지/보수 하는데 초점을 두고 있지 않습니다.

 

CoreData의 핵심 목표는 Apple API에서 사용되는 Model - View - Controller 의 Model 레이어를 완성시키는데 있으며 따라서 CoreData는 지속성 옵션이 추가된 객체 그래프 관리자에 지나지 않습니다.

여기서 객체 그래프 관리자란 메모리에 있는 라이브 객체의 콜렉션이며 이들은 CoreData에 의해 관리됩니다. 

 

또 CoreData의 Persistence 기능은 관계형 데이터 베이스인 SQLLite에 의해 지원되는데 이 SQL과의 차이점을 알아보자면

SQL의 경우 실제 데이터를 디스크에 직접 입력하는 반면 CoreData는 라이브 데이터를 직렬화(Serialize) 합니다.

 

여기서 직렬화란 사용할 개체를 재구성하여 커스텀하게 변경시키는 것을 이야기 합니다.

단순히 데이터의 행, 열인 SQL과는 차이가 있는 것이죠.

 

제가 이해한 내용은 여기까지 이고 이후 CoreData를 사용해보며 더 알게되는 내용이 생기면 추가하도록 하겠습니다!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함