이전부터 이 질문을 정말 많이 생각하기도, 받기도 했다.
(나는 왜 이런 질문들을 받았던걸까...?)
CoreData를 공부하고 있는 지금, 조금 확신이 드는 생각을 정리해본다!
CoreData를 이전에는 일종의 데이터베이스로 생각했다.
Userdefault 같이 데이터베이스는 아니지만 어찌됐던 바뀐 값을 유지한다(persist)는 점에서 '데이터베이스'라는 명칭으로 통일해 왔었다. 하지만 공부를 하면서 userdefault는 일반적인 '데이터베이스'라고 하기에 애매하기도, 용도가 다르다는 점을 파악하면서 CoreData 또한 데이터베이스라고 부르기 조금 애매한 영역에 있다는 점을 알게 됐다.
그렇다면 CoreData는 언제 쓰는걸까??
1. 우선 가벼운 데이터베이스를 필요로 한다면 최선의 선택은 아닌 것 같다.
CoreData가 데이터베이스 역할을 할 수 있는 프레임워크는 맞지만, 데이터를 저장하기 위해 거쳐야는 과정이 많았다. 여러 단계를 거치지 않고 데이터를 저장할 수 있는 방법은 많지 않을까?
2. 자동으로 데이터 관리를 하고 싶다면 CoreData!
CoreData는 데이터 모델의 변화를 지속 체크하고 업데이트를 할 수 있다. (물론 수동으로도 가능하다!) 이 말은 개발자가 Entity가 가져야할 속성을 더하거나 빼고 싶다면 쉽게 바꾸고 - CoreData는 빠르게 이것을 적용할 수 있다는 점에서 CoreData는 나름의 편리성을 제공하는 것으로 보여진다.