주희하세요!

What is Core Data

2019-07-14
Juhee Kim

Core Data란 무엇인가요?

Core Data는 응용 프로그램에서 모델 계층 객체를 관리하는 데 사용하는 프레임 워크입니다. 영속성을 포함하여 객체의 life cycle 등의 기능을 가진 객체 그래프 관리자의 역할을 수행합니다.

코어 데이터는 일반적으로 모델 계층을 지원하기 위해 작성하는 코드의 양을 50-70% 감소시킵니다. 다음과 같은 기본 기능이 제공되기 때문에 구현, 테스트, 최적화 부분을 많이 줄일 수 있습니다.

  • 수정사항 트랙킹, 실행취소/재시도를 기본적으로 제공합니다.
  • 객체간 관계를 일관적으로 관리하면서 변경사항을 전파합니다.
  • 오버헤드를 줄이기 위해 객체의 지연로딩(Lazy loading), 부분 오류 발생, copy-on-write 데이터 공유를 제공합니다.
  • 자동적으로 속성 값의 유효성을 검사합니다. 관리 객체는 표준 key-value 코딩 유효성 검사 메서드들을 확장하여 값이 허용되는 범위 내에 있음을 보장합니다.
  • 간단한 스키마 변경이 가능하고 효율적으로 스키마 마이그레이션을 수행할 수 있는 스키마 마이그레이션 도구를 제공합니다.
  • 사용자 인터페이스 동기화를 지원하기 위해 응용 프로그램의 컨트롤러 레이어와 선택적으로 통합할 수 있습니다.
  • 메모리 및 사용자 인터페이스에서 데이터를 그룹화하고 필터링, 조직화할 수 있습니다.
  • 외부 데이터 저장소에 객체들을 저장하도록 지원합니다.
  • 정교한 쿼리 컴파일. SQL을 작성하는 대신 NSPredicate 오브젝트를 fetch request과 연관시켜 복잡한 쿼리를 작성할 수 있습니다.
  • 자동 충돌 해결을 지원하기 위해 버전 추적과 최적화 locking을 제공합니다.
  • macOS 및 iOS 툴 체인과의 효과적인 통합.

Core Data는 영구저장을 위해 SQLite 를 사용합니다.

  • SQLite 및 일반적인 DBMS 에서 지원하는 검색, 정렬 등의 기능을 제공합니다.
  • SQLite의 Wrapper가 아닙니다. 동일한 기능을 제공한다 하더라도 SQLite 와 다른 로직으로 수행될 수 있습니다.
  • 또한 SQLite에서 제공하는 모든 기능을 제공하는 것이 아닙니다. (예: 자동 데이터 증가 attribute)
  • SQLite는 영속성 유지를 위해 디스크에 데이터를 저장하지만, Core Data는 완전한 인-메모리 형태로 사용 가능합니다. 역설하자면 Core Data는 명시적으로 저장 명령을 내릴때까지 디스크에 저장하지 않습니다.

이 문서는 편의와 명확성을 위해 직원 데이터베이스 스타일의 예제를 사용합니다. 풍부하지만 쉽게 이해할 수있는 문제 영역을 표여줍니다. 그러나 핵심 데이터 프레임 워크는 데이터베이스 스타일의 응용 프로그램이나 클라이언트 - 서버 동작에만 국한되지 않습니다. 이 프레임 워크는 Sketch와 같은 벡터 그래픽 응용 프로그램이나 Keynote와 같은 프레젠테이션 응용 프로그램의 기초만큼 유용합니다.

Data Model 만들기

Core Data의 기능 대부분은 응용 프로그램의 엔터티, 속성 및 속성 간의 관계를 설명하기 위해 만드는 스키마에 따라 달라집니다. 핵심 데이터는 NSManagedObjectModel의 인스턴스인 관리 객체 모델이라 불리는 스키마를 사용합니다. 일반적으로 모델이 풍부할수록 더 우수한 Core Data가 응용 프로그램을 지원할 수 있습니다.

Entity와 그 Property 만들기

Xcode에서 새 프로젝트를 시작하고 템플릿 선택 대화 상자를 열 때 코어 데이터 사용 확인란을 선택합니다. 코어 데이터 모델의 소스 파일이 템플리트의 일부로 작성됩니다. 해당 소스 파일의 확장자는 .xcdatamodeld입니다. 탐색기 영역에서 해당 파일을 선택하여 핵심 데이터 모델 편집기를 표시하십시오.


Similar Posts

이전 Share

Comments