728x90
※출처 - 꼼꼼한 재은씨의 Swift: 실전편
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
'iOS > 설명' 카테고리의 다른 글
[iOS] Stretchable Image를 이용해 이미지 늘리기 (feat. 9-patch) (0) | 2022.02.08 |
---|---|
[iOS] CoreData - (2) (0) | 2022.02.05 |
[iOS] M1 환경에서 pod install 에러 발생 시 대처 (0) | 2022.01.22 |
[iOS] 코코아팟 (Cocoapods) 설치 및 사용 (0) | 2022.01.22 |
[iOS] StoryBoard를 사용하지 않는 경우 (0) | 2022.01.22 |
댓글