본문 바로가기

개발/App Developer

Core Data 란?

개발하려는 아이폰 앱의 데이터 관리가 복잡해 질 경우 코어 데이터 사용은 필수가 될 것이다. 코어 데이터 프레임워크는 원래 Mac OS X에서 사용되던 기술이었는데 iPhone OS 3.0부터 아이폰에서도 사용할 수 있게 되었다. 코어 데이터의 특징은 다음과 같다. 웹 개발자라면 ORM 개념을 상기한다면 쉽게 이해가 될 것이다.

 

---------------------------------------------------------------------------------------------------

*  OMR (Object-relational mapping)

1. 객체의 속성과 관계형 데이터베이스의 대응 전략, ORM의 개요
가. ORM(Object Relational Mapping)의 정의
- 데이터베이스 연계처리를 위하여 기존의 SQL에 의존하는 것이 아니라, 직접 테이블의 컬럼을 자바
  Class에 매핑하거나 XML형태의 SQL을 실행하여 처리를 수행하는 Persistence Layer를 담당하는
  Framework 개발모델


나. ORM의 등장배경
-OOP(Object Oriented Programming)에 있어서 관계형 데이터베이스와의 연계성을 분명히 하자는 의도

오브젝트라 함은 프로그램적인 개념이고 릴레이션은 RDBMS의 개념으로 해석하면됨.

우리는 흔히 개발시에 DB에서 데이터를 조회하고 필요하면 입력/수정/삭제를 위한 작업을 하는데.

이럴때 통상적으로 테이블의 1개 레코드의 정보 혹은 여러테이블의 조인에 의한 결과물에 매핑되는

객체를 만들게 된다.

 

자바는 이전부터 자바 패턴이라는 곳에서  엔터티 클래스라는 명칭이 나왔었고.

EJB에서는 Bean오브젝트, 정확히는 엔터티빈 이라고하는 것을 통해서 이를 개입시켰다.

또한 전통적인 개발 프레임웍인 MVC 패턴에서는 Model 클래스가 이에 해당한다.

 

그런데, 문제는 데이터 소스가 테이블이 아닌, 다른 형태로 존재한다면(요즘의 추세로는 xml 이외에는 거의 없을것 같다.)

이를 위한 매핑문제가 유연한 구조로 가야하지 않을까 라는 생각에서 출발한 개념 같다.

(음..갑자기. 이전에 좀 끌적였던 웹서비스가 생각난다.)

 

닷넷에서는 3.0 에서 LINQ라는 아키텍쳐 개념을 제공한 것으로 아는데.. 이것도 ORM 과 유사한 것이 아닐까?

여러형태의 데이터 소스가 존재한다고 하더라도. 이름 Object와 편리하게 매핑시켜주는 기능..

---------------------------------------------------------------------------------------------------

  • 객체의 그래프를 저장할 수 있는 수단 제공
  • 객체의 프라퍼티와 객체간의 관계 저장
  • 실행 취소 및 반복 등의 기능 자동화
  • 파일, SQLite 등의 외부 저장소에 저장하는일 자동화

 

 

자세한 내용과 Xcode에서의 사용법은 다음 두 글을 참고하면 된다.

 

 

* 많은 내용이 책 또는 검색 후 개인적인 생각을 포함 수정한 것입니다.

본의 아니게 정리도중 출처를 읽어버린 경우가 있어 출처를 밝히지 못한 곳도 있으니 양해바랍니다.

문제가 될 경우 댓글 달아주시면 삭제/보완처리를 하겠습니다.

감사합니다.


'개발 > App Developer' 카테고리의 다른 글

sqlite 공부시 도움 블로그  (0) 2010.10.04
테이블 스페이스 용량 보기  (0) 2010.09.13
아이폰 객체의 직렬화 방법 - 맥부기 펌  (0) 2010.09.06
HIG  (0) 2010.09.06
cocos2d-iphone (예제포함)  (0) 2010.09.06