알라딘

헤더배너
상품평점 help

분류

이름:팀 이스테드 (Tim Isted)

최근작
2014년 9월 <iOS 코어 데이터>

팀 이스테드(Tim Isted)

1995년부터 매킨토시(Macintosh) 컴퓨터 소프트웨어를 개발했다. 또한 레일즈(Rails), PHP, 닷넷을 사용한 웹 애플리케이션을 개발했고, 윈도우 개발자로도 알려졌다. 프로 음악가이자 노래 선생님이며, 지휘, 연주, 강의, 프로그래밍에 동일한 시간을 투자하기 위해 많은 노력을 기울인다. 데스크탑용 코어 데이터 개발에 관련된 블로그 포스팅을 www.timisted.net에서 찾을 수 있다. 유럽과 미국에서 열리는 맥 개발자 컨퍼런스인 NSConference의 공동주최자이기도 하다.  

대표작
모두보기
저자의 말

<iOS 코어 데이터> - 2014년 9월  더보기

우리는 데이터가 주도하는 세상에 살고 있다. 이메일, 트위터, 페이스북 같은 소셜 데이터와, 주가, 금융 예측, 은행 계좌 같은 비지니스 데이터, 퀴그자 게임 같은 레크리에이션 요소 등 수많은 데이터를 소비한다. 모바일 디바이스의 성능과 용량이 발전하면서 휴대폰이나 태블릿 컴퓨터를 통해 자료를 저장하거나 불러오고 표시하길 원하는 수요가 급격히 증가하고 있다. 소비자는 전에는 들어본 적도 없는 성능의 아이폰, 아이팟터치, 아이패드를 구입하고, 이런 기기를 통해 미디어를 재생하거나 애플리케이션을 실행하길 바란다. 수년 전만 하더라도 데스크탑에서나 가능했던 일이다. 데이터 저장을 관리하는 기능이 없는 애플리케이션을 상상하기란 점점 더 쉽지 않다. 심지어 다운로드한 트윗을 관리하기 위한 트위터 클라이언트 애플리케이션이라도 하나 혹은 그 이상의 트위터 계정을 영구적으로 보관해야 한다. 계산기 애플리케이션은 계산한 값을 메모리에 저장해두거나 이전 계산 내역을 저장해야 한다. 게임의 경우에는 성취감을 느낄 수 있게 최고 점수를 저장할 필요가 있으며, 게임 도중 전화가 와서 잠시 종료했다 다시 돌아왔을 때 바로 플레이로 복귀할 수 있게 상태를 저장하고 있어야 한다. 사용자가 모바일 개발자인 우리에게 요구하는 것은 많다. 데이터가 가장 효율적으로 저장되길 바랄 뿐 아니라 애플리케이션은 빠르고 부드럽게 실행되기를 기대한다. 모바일 디바이스에서는 상대적으로 적은 메모리만 사용할 수 있어 데이터를 효율적으로 다루기가 매우 어렵다. 또한 데스크탑에서는 상상도 할 수 없는 일이지만, 모바일 앱을 개발할 때는 효율적인 전원 사용도 염두에 둬야 한다. 배터리를 많이 소모하는 앱을 좋아하는 사용자는 없다. 아이폰 SDK가 처음으로 소개됐을 때는 개발자가 데이터 접근에 있어 소극적일 수밖에 없었다. 데이터를 저장하기 위해서는 기본 파일 저장을 통하거나 SQLite 데이터베이스에 직접 접근하는 수밖에 없었다. 제한된 메모리 상황에서 SQLite가 도움이 되는 것은 사실이지만, 개발자들은 직접 데이터 관리 레이어를 통해 데이터를 저장하거나 불러오기 위한 SQL 명령을 생성하는 모델 객체와 상호 작용하길 원했다. 이 모든 것이 코어 데이터를 통해 해결됐다. 아이폰 SDK 버전 3.0(4.0부터는 iOS라고 이름이 바뀌었다)부터 애플은 데이터 관리 레이어를 제공하기 시작했다. 우리는 저장하고 싶은 모델 객체에 스키마를 정의하고 디스크에서 모델 데이터를 관리하는 일은 코어 데이터에게 맡기면 된다. 로우레벨 SQL 명령을 신경 쓸 필요도, 단일 파일에서 데이터 1GB를 로딩할 때 메모리 문제가 생길지 걱정할 필요도 없다. 우리는 단지 '데이터 저장'이라는 일만 하면 된다. 의도적으로 애매한 용어를 사용했는데, 이는 데이터 파일을 관리하는 세세한 부분은 알아서 처리되기 때문이다. 개발자는 파일 관리를 프레임워크에게 맡기고 객체를 가지고 작업하기만 하면 된다. 코어 애니메이션(Core Animation)이 뷰에 사용하는 멋진 프레임워크라면, 우리는 이제 모델에 사용하는 멋진(다만 눈에 보이는 멋짐은 아니지만) 프레임워크라고 할 수 있다. 귀찮은 데이터 관리에 허비할 시간을 줄이고 애플리케이션의 특징적인 기능에 좀 더 집중할 수 있게 된 것이다. 데이터 관리에 있어 코어 데이터는 완벽에 가까운 솔루션이지만, 학습 곡선이 꽤나 가파른 편이다. 자료 저장을 위해 SQLite를 쉽게 다룰 수 있는 능력 때문에 종종 코어 데이터가 데이터베이스 자체라고 오해받기도 한다. 사실이건 맞는 얘기는 아니지만 일반적인 데이터베이스 용어와 기술을 알고 있으면 코어 데이터를 이해하는 데 도움이 된다. 코어 데이터 클래스 중에는 크기가 상대적으로 작은 클래스도 많지만, 실제로 프레임워크를 사용하기 전에 이 클래스들의 사용법을 충분히 숙지해 두는 편이 좋다. 예를 들어 '관리 객체(managed object)'나 '영구 저장(persistent store)'이라는 용어를 모른다면 '관리 객체 콘텍스트(managed object context)'를 이해하기 쉽지 않다. 하지만 관리 객체를 활용하기 위해서는 관리 객체 콘텍스트와 영구저장이 필요하다. 코어 데이터를 제대로 활용하기까지 넘어야 하는 산이 크게 느껴질 수 있다. 이 책은 코어 데이터를 처음부터 자세하게 설명한다. 프레임워크의 기본적인 클래스가 서로 상호 작용하기 위해 세세한 설정을 바꾸는 모습을 배운다. 데이터를 저장하고 불러오는 방법을 알아보고, 대부분의 데이터 기반 앱이 사용하는 UITableView의 데이터를 예제로 살펴본다. 그리고 데이터 무결성을 위해 데이터를 검증하는 것이 얼마나 쉬운지도 배운다. 마지막으로 코어 데이터 애플리케이션에 발생할 수 있는 문제를 해결하는 방법과, 데이터 관련 성능을 향상시키는 방법도 알아본다. 이 책을 마칠 때쯤이면 프레임워크와 클래스에 대해서 잘 이해하게 되고, 코어 데이터 없이 어떻게 데이터 관련 개발을 할지 의문에 빠지게 될지도 모른다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자