Mac OS X - Data Management

Core Data는 Model-View-Controller (MVC) 패턴을 기반으로 한 Cocoa 응용 프로그램을 구축할 수 있는 유연하고 강력한 데이터 모델 프레임워크를 제공합니다.

Core Data는 여러분의 응용 프로그램의 데이터 모델을 그래픽적인 방법으로 간편하게 정의하고 코드를 통해 쉽게 접근할 수 있게 해 주며, 혁신적인 응용 프로그램을 구축하는데 필요한 저장, 복구, 작업 취소, 재실행과 같은 공통 기능을 처리할 수 있는 인프라스트럭쳐를 제공합니다. Core Data는 내장 SQLite 데이터 라이브러리를 사용하므로, 별도의 데이터베이스 시스템을 설치할 필요가 없습니다.

Core Data

Core Data

Core Data는 규모와 관계없이 모든 종류의 응용 프로그램의 요구에 맞는 데이터 모델을 관리할 수 있는 일반적으로 사용할 수 있는 데이터 관리 솔루션을 제공합니다. 따라서 여러분은 Core Data 위에 연락처 관리 응용 프로그램부터 벡터 아트 일러스트레이션 프로그램에 이르기까지 모든 것을 구축할 수 있습니다. Core Data에는 한계가 없습니다. 데이터 오브젝트를 관리하는 거의 모든 응용 프로그램이 Core Data 사용에 따른 혜택을 받을 수 있습니다.

Apple의 사용자 인터페이스 에디터인 Interface Builder는 미리 내장된 Core Data 컨트롤러 오브젝트를 제공하므로, 응용 프로그램의 사용자 인터페이스와 데이터 모델 사이를 연결해주는 코드의 필요성을 크게 감소시켜줍니다. SQL 신택스를 걱정할 필요가 없습니다. 사용자 동작을 추적하기 위한 로직 트리를 유지할 필요도, 새로운 유지 메커니즘을 생성할 필요도 없습니다. 응용 프로그램의 사용자 인터페이스를 Core Data 모델에 연결하기만 하면, 모든 것이 다 준비되어 있습니다

Core Data는 여러분의 응용 프로그램 모델 레이어를 정의된 in-memory 데이터 오브젝트로 관리하고, 이 오브젝트에 대한 변경 이력을 추적하고, 요청이 있을 경우, 사용자가 undo 명령을 실행시켰을 때와 같이 변경 사항을 되돌릴 수 있습니다. 응용 프로그램에 변경 내용을 저장해야 할 경우에는, Core Data가 오브젝트를 일정한 저장 장소에 아카이빙하고, 데이터를 정규 파일로 데이터를 저장하므로, 사용자가 Finder로 관리, Spotlight으로 검색, CD에 백업, 친구나 가족에게 이메일을 보내는 등의 작업을 할 수 있습니다.

Core Data 프레임워크를 이용하여 속성 (entity)라고 불리는 모델 오브젝트의 추상적 정의를 제공하는 관리된 오브젝트 모델을 생성할 수 있습니다. 이 속성-관계 모델은 Xcode의 Data Model Design 툴을 이용하여 지정되며, 속성과 관계를 모델링하기 위한 환경을 제공합니다. 또한 여러분의 응용 프로그램의 데이터 타입과 데이터 타입 간 관계를 나타내는 청사진이 되기도 합니다.

SQLite

Mac OS X은 응용 프로그램에 쉽게 임베딩되는 가벼우면서도 강력한 관계형 데이터베이스 엔진으로 유명한 SQLite 라이브러리를 포함하고 있습니다. 다수의 플랫폼과 수없이 많은 응용 프로그램에서 사용된 SQLite는 이미 가벼운 임베디드 SQL 데이터베이스 프로그래밍의 산업 표준이 되었습니다. 객체 지향 Core Data 프레임워크와는 달리, SQLite는 순차적인 SQL 위주의 API를 사용하므로 데이터 테이블을 직접 조작할 수 있습니다.

HTML5 Client-Side Data Storage in Safari

Safari의 HTML5 클라이언트 측 데이터 스토리지

가장 혁신적인 브라우저인 Safari는 최신 HTML5 오프라인 데이터 스토리지 기능을 지원합니다. 오프라인 스토리지 기능은 간단한 키/값 데이터 API나 고급 SQL 인터페이스를 이용하여, 어떠한 웹 응용 프로그램에서도 Mac의 브라우저 캐시로 세션 데이터를 로컬 저장할 수 있게 만들어 줍니다. 이 데이터는 Safari 실행 시마다 일관되게 유지되므로, 응용 프로그램을 더욱 빠르게 구동하고, 네트워크에 대한 의존성을 경감시키며, 최고의 성능을 유지할 수 있음을 의미합니다.