본문 바로가기
iOS/설명

[iOS] CoreData - (1)

by Sky Titan 2022. 2. 1.
728x90

※출처 - 꼼꼼한 재은씨의 Swift: 실전편

 

싸니까 믿으니까 인터파크도서

제대로 스위프트를 즐기는 방법 이 책은 전반적으로 하나의 메인 프로젝트를 완성해나가는 동시에 각 주제별로 소규모 앱을 만들면서 기능을 익히도록 구성되어 있습니다. 따라서 특정 주제나

book.interpark.com

CoreData

  • 애플이 코코아 개발 환경을 통해 제공하는 인메모리(In-Memory) 방식의 데이터 관리 프레임워크
    • 코어 데이터는 DataBase가 아니다!
    • ORM 매핑 프레임워크라고 보는 것이 맞다. (혹은 데이터 관리 프레임워크)
    • 코어 데이터를 사용하면 데이터베이스 개발 환경과 유사하게 데이터를 읽기, 쓰기, 수정, 삭제가 가능하다.
  • In-Memory
    • 코어 데이터에서 데이터를 다루는 모든 작업은 메모리를 기반으로 동작하게 된다.
    • 즉, 모든 데이터는 원칙적으로 메모리에 로드된 다음에 처리된다.
    • 그렇기에 대량의 읽기, 쓰기 작업이 발생하더라도 성능에 크게 영향을 미치지 않는다.
    • 대부분의 작업이 영구 저장소에서 직접 처리되는 Database와는 구분되는 특성이다.
    • 인메모리라 하더라도 내부적으로는 File, SQLite와 같은 영구 저장소에 보조적으로 데이터를 저장하기 때문에 앱이 종료되어도 데이터는 삭제되지 않는다.
  • 코어 데이터의 코드 포맷은 DAO 패턴과 매우 유사하다.
    • 코어데이터에서 ViewController는 단지 '관리 객체 컨텐스트 (Managed Object Context)' 객체를 통해 필요한 메소드만 호출하여 데이터를 처리한다.
    • 즉, DAO 클래스에 대응하는 개념이 '관리 객체 컨텍스트' 이다.
SQLite  
데이터베이스 파일 데이터 모델 파일
테이블 엔터티 (Entity)
컬럼 애트리뷰트 (Attribute)
외래키 + 조인 릴레이션 (Relation)

 

코어 데이터는 SQLite의 Wrapper가 아니다.

  • 코어 데이터는 영구 저장소로 SQLite 대신 Binary 파일을 사용할 수 있을 뿐 아니라, 영구 저장소를 아예 사용하지 않고 순수하게 인메모리 방식으로만 사용도 가능하기 때문이다.
728x90

댓글