Top

[아이폰 기능을 무한 확장할 수 있는]
아이폰 액세서리 디바이스 개발

  • 원서명Building iPhone OS Accessories: Use the iPhone Accessories API to Control and Monitor Devices (ISBN 9781430229315)
  • 지은이켄 마스크레이
  • 옮긴이이성원, 윤주식, 이두희
  • ISBN : 9788960772335
  • 30,000원
  • 2011년 09월 23일 펴냄
  • 페이퍼백 | 436쪽 | 185*235mm
  • 시리즈 : 모바일 프로그래밍

책 소개

앱스토어에 등록된 앱이 이미 50만 개를 넘어섰다. 앵그리버드처럼 영화로 만들어질 정도로 성공한 앱이 있는 반면, 그 외의 49만여 개의 앱은 아무도 모르게 앱스토어 한 켠의 무덤으로 사라진다. 어떻게 하면 이렇게 수많은 앱 공동 묘지에서 살아 남을 수 있을까? 이 책에서는 액세서리를 통해 다른 앱들과의 차별화를 꾀한다. 액세서리라고 해서 작고 귀여운 곰인형 핸드폰 고리를 상상하면 큰 오산이다. 신용카드 리더, 라디오 송신기 등 아이폰에 장착돼 동작하는 외부 장치가 바로 액세서리 디바이스다. 액세서리 디바이스를 이용한 앱과 하드웨어의 개발, 그것이 바로 이 책에서 제시하는 앱 공동 묘지 탈출 방법이다.


[ 소개 ]

『아이폰 액세서리 디바이스 개발』은 애플의 외부 액세서리 프레임워크와 아이폰 액세서리 API에 대한 실제적인 정보를 담고 있다. 이제 이 정보들은 아이패드에도 적용할 수 있다. 이 책으로 아이폰 앱과 그 앱을 하드웨어와 연결시키는 새롭고 통합적인 솔루션을 만드는 방법을 배울 수 있다.

아이폰 OS 액세서리 API는 아이폰 개발자들이 외부 장치들을 제어하고 상태를 확인할 수 있게 만들어 줌으로써 개발자들에게 더 많은 기회를 제공해 준다. 개발자들이 직접 그 장치를 만들든, 다른 회사로부터 얻어내든 상관없이 말이다.


[ 이 책에서 다루는 내용 ]

■ 아이폰과 아이팟 터치를 위한 액세서리 디바이스와 앱 개발
■ 애플의 외부 액세서리 프레임워크를 사용한 하드웨어와 소프트웨어 연동
■ 아이폰 액세서리 API를 사용한 외부 장치 제어와 확인
■ 아이폰 OS SDK 안에 있는 특정 컨트롤러 클래스
■ 액세서리 디바이스 제작과 제어
■ 액세서리 디바이스 개발자가 되기 위해 필요한 비용


[ 이 책의 대상 독자 ]

이 책은 외부 액세서리 디바이스를 제어하는 앱을 만들고 싶은 아이폰, 아이팟 터치, 아이패드 애플리케이션 개발자와, 아이폰 OS 장치에 연결되는 액세서리를 만들고 싶은 하드웨어 개발자를 위한 책이다. 이는 지금까지 아이폰 열풍에서 소외된 임베디드 시스템 프로그래머에게도 해당된다.

아이폰 OS 액세서리 EAAccessory는 개발자들에게 시장을 한 번 더 넓혀 주는 역할을 한다. 이 새로운 API는 외부 장치들을 (직접 만들었건, 다른 곳에서 구했건 간에) 직접 제어하고 확인할 수 있게 해준다. 이 책은 액세서리 API를 사용하고 싶어하는 모든 개발자를 위한 책이다.

저자/역자 소개

[ 저자 서문 ]

WWDC 2009에서 EAAccessory 프레임워크의 발표를 본 이후 나는 두 가지 생각을 했다. (1) 이건 진짜 멋진데다 돈도 좀 되겠다. (2) 벌써 늦었는지도 모르겠다. 두 번째 생각을 하게 된 이유는 그 당시 앱스토어에는 이미 10만 개가 넘는 앱이 있었기 때문이다. 따라서 나는 다른 사람들이나 회사보다 먼저 멋진 액세서리 디바이스를 만들 수는 없을 거라고 생각했다. 액세서리 디바이스 시장도 앱스토어와 똑같아질 거라고 봤기 때문이다.

하지만 나는 액세서리 디바이스 시장을 지켜보면서 내 손으로 한번 직접 만들어 보기로 마음먹었다. 첫 번째 프로젝트는 아이폰용 신용카드 리더였다. 나는 개인적으로 운영하는 수리점인 Mac Medics에서 하루에 2~10개 정도의 아이폰 스크린을 수리한다. 내 고객의 4분의 3 정도는 비즈니스를 하는 사람들인데, 아이폰으로 신용카드 결제를 할 수 있는 방법이 있었으면 좋겠다고 생각했었다.

그 당시에 신용카드 결제를 제공하는 앱은 몇 개 있었지만, 액세서리 디바이스는 거의 없었다. 소프트웨어로만 처리하는 신용카드 결제는 두 가지 문제가 있었는데, 첫 번째는 정보를 입력하는 과정에서 실수가 많이 발생한다는 것이었으며, 두 번째는 수수료가 너무 비싸다는 것이었다. 리더는 이 두 가지 문제를 모두 해결해줄 수 있었다. 그래서 나는 시장을 지켜보면서 제작에 들어갔다.

결국 멋진 제품을 만들어냈고, 다른 제품과의 경쟁에서도 승리했다. 어떤 경쟁이 있었느냐고? 이 글을 쓰는 시점인 2010년 4월에 신용카드 리더 제품은 내가 만든 제품 하나뿐이다. 물론 다른 제품이 조만간에 출시될 예정이긴 하다. 어쨌든 여기서 중요한 점은 어느 제품이 더 낫느냐는 것이 아니라, 경쟁이 치열하지 않다는 데 있다.

그래서 나는 이 책을 집필하기로 결심했다. 앱스토어에 정신이 팔린 여러분에게 새로운 기회를 알려주고 싶었다. 애플이 아이폰 액세서리 디바이스 개발의 세계를 열어준 지 거의 1년이 지났지만, 이 새로운 세계를 함께 헤쳐 나가는 사람들을 거의 만나지 못했다. 이 책의 기술 감수자인 딘 캐플란이 내가 아는 한 액세서리 디바이스 개발계에서 활동하는 유일한 인물이다. 개인적으로는 더 많은 경쟁 상대를 만나고 싶다. 왜냐고? 사람들이 모이지 않으면 그 결과는 뻔하기 때문이다. 애플 TV를 보라.

이 책에 대해 두 가지를 짚고 넘어가겠다. 먼저, 여러분이 알고 싶어 할 많은 부분이 애플의 NDA에 의해 막혀있기 때문에 책에서 다룰 수 없다. 그리고 기본적으로 책에서는 EAAccessory 프레임워크를 비롯한 소프트웨어적인 측면에 집중하지만, 실제 액세서리 디바이스 개발에 필요한 하드웨어와 펌웨어 등에 대해서도 다룰 것이다.

아이폰 액세서리 디바이스를 개발하려면 초기 비용이 필요하다. 일단 애플의 아이팟/아이폰용 인증 프로그램(MFi/WWi)에 가입해야 한다. 하지만 이 프로그램은 액세서리 디바이스의 세계로 들어가는 문 앞까지만 데려다 줄 것이다. 액세서리 디바이스의 세계를 제대로 이해하려면 시간과 돈을 투자해야 한다. 이 책을 통해 애플의 NDA가 허용하는 한도 내에서 액세서리 디바이스의 세계에 대한 통찰을 제공하고자 한다.

액세서리 디바이스를 위한 MFi/WWi 프로그램이 시작된 이후 일부 회사에서 아이폰 액세서리 디바이스 개발 키트를 제공하기 시작했다. 나는 마이크로칩(Microchip)의 PIC 컨트롤러를 주로 사용하므로, 마이크로칩 사의 웹사이트에 가서 어떤 것이 제공되는지 확인해보기를 추천한다. 절대로 마이크로칩에서 뭔가 받았거나 해서 이런 말을 하는 것이 아니다. 물론 마이크로칩에서 이걸 보고 공짜로 개발 키드를 제공해준다면 정말 좋을 것 같기는 하다. 흠흠……

어쨌든 이제 여러 회사에서 마이크로칩처럼 개발 키트를 제공하므로, 이 키트를 이용해 작업을 빠르게 시작할 수 있다. 내가 처음 액세서리 디바이스를 만들 때 이런 키트가 있었다면 개발 과정을 두세 달은 줄일 수 있었을 텐데.

이 책의 각 장에 무슨 내용이 담겨있는지 여기서 세세히 이야기하고 싶지만, 어차피 목차를 보면 어느 정도 알 수 있을 테니, 이 책을 집어 들어 목차를 펼쳐봤거나 구입했다면 무슨 이야기를 할 건지 이미 잘 알 것이다.

이 책은 아이폰 액세서리 디바이스에 대한 아이디어가 있고, 실제로 만들고 싶은 사람을 위해 썼다. 따라서 아이폰 소프트웨어 개발에 대한 지식이 어느 정도 필요하다. 기본적으로 아이폰 소프트웨어 개발 키트를 써서 몇 가지 애플리케이션을 개발해봤고, 실제로 아이폰(시뮬레이터가 아닌 실제 아이폰)으로 실행시켜본 정도는 돼야 한다. 특히 애플리케이션 중 최소한 하나 정도는 책에 나온 프로젝트를 베끼지 않고 실제로 직접 디자인해본 사람이 책을 읽는다면 더 좋겠다. TableView에 대한 충분한 이해가 있다면 책 내용을 이해하기가 더 수월할 것이다.

사실 경험이야 어쨌건, 일단 한번 해보자. 내 이력을 읽어보면 어릴 때부터 공학을 시작했다는 부분을 볼 수 있다. 내가 처음 만들어 본 물건은 레이저 총이었다. 금속 봉에 램프에서 떼 온 코드를 연결한 것이 전부였다. 그 코드를 콘센트에 끼웠을 때 어떤 일이 생겼을지 상상이 되는가? 남들은 멍청하다고 할지도 모르지만 나는 호기심이 왕성했다는 표현을 쓰고 싶다. 물론 여러분이 아이폰에 전선을 끼우고 콘센트에 끼운다고 해도 내게는 책임이 없다

마지막으로, 즐겨보자. 넓은 세계가 펼쳐질 것이다. 용기가 있다면 탐험가가 돼서 여러분이 할 수 있는 것을 해보자.


[ 저자 소개 ]

켄 마스크레이 (Ken Maskrey)
열 살 때부터 삼촌 찰리가 가져다 준 TV 부속품으로 조립품을 만들며 공학을 익히기 시작했다. 열여섯 살에는 직접 컴퓨터를 조립했으며, 다음 해에는 메이저 플로리다 은행의 한 세기 동안의 서류 기록들을 정리하는 코볼 프로그램을 짰다.
대학을 졸업하고 공군에서 지낸 뒤엔 IBM, TRW, 로럴 에어로스페이스, 록히드 마틴 등에서 일했다. 마스크레이는 연구 부서에서 일하면서 수십, 수백억의 가치를 가진 아이디어와 컨셉을 프로토타입으로 제작하는 일을 전문적으로 했다.
90년대 중반부터 2000년 후반까지 실리콘 밸리에서 일하면서 닷컴 붐과 몰락을 모두 지켜봤고, 그 후 43세 나이로 은퇴해 하와이의 마우이로 가서 카나하 공원에서 윈드서핑을 가르치며 지냈다. 하지만 2년간의 휴식 후 AMOS(Air Force Maui Optical and Supercomputing Station)에서 섬 꼭대기에 있는 3미터 광학 망원경의 소프트웨어 성능을 개선하는 일을 맡게 됐다.
남들을 위해 일하는 데 지친 마스크레이는 다시 섬에서 5년간 고립된 생활을 하다가 덴버의 콜로라도 영화 스쿨에 진학해 영화 제작을 공부하기 시작했다. 그곳에서 몇 편의 단편 영화를 쓰고 제작했는데, 그 중 콜로라도 고등학교의 문자 메시지를 보내는 킬러의 이야기를 그린 영화 「텍스트(Text)」는 DVD로도 많이 팔렸다고 한다.
영화업계의 폐쇄적 환경을 겪고 난 후 마스크레이는 다시 공학의 길로 돌아와 콜로라도 파커에 애플 수리점을 열었다. 이 일은 아이폰에 대한 독특한 통찰을 제공해줬고, 결국 WWDC 2009에서 발표된 액세서리 프레임워크를 이용해 아이폰 OS 기기를 위한 액세서리 디바이스를 만들기 시작했다.
현재 글로벌 테크 랩(Global Tek Labs)에서 책임 엔지니어를 맡아 아이폰 액세서리 디바이스와 더불어 다양한 분야에서 사용하는 고객 관리 통합 솔루션의 디자인과 개발을 하고 있다.


[ 옮긴이의 말 ]

오늘 아침도 여지없이 눈을 뜨며 아이폰을 집어 든다. 화면을 밀어 알람을 해제하고는 자연스레 앱들을 확인하며 잠을 쫓아낸다. 정신을 차리고 아이폰에서 눈을 떼고 나면 이미 출근 시간이 훌쩍 넘어 있는 것을 발견하는 것도 하루 이틀이 아니다. 스마트폰은 지하철에서도, 회사에서도, 친구와 점심을 먹을 때도 빠지지 않는 도구이자 생활의 일부가 돼 버렸다. 모바일 컴퓨팅 시대의 도래라는 말조차 이미 낡은 표현으로 느껴질 정도니까 말이다.

‘뭐야, 고작 보안 프로그램 하나 만들어 놓고 돈 받아먹겠다는 거야?’

몇 년 전 우연히 들은 ‘5년 내 들어본 것 중 가장 어이없는 말’ 베스트 3위다(2위는 ‘프로그래밍은 노가다잖아요?’였고, 1위는 ‘저기요, 아저씨’였다). 어이없지만 이는 소프트웨어 시장의 현실을 반영하는 말이기도 하다. 무료 애플리케이션 사용자들에게 유료 애플리케이션이란 자신과 관련이 없는, 혹은 불법으로 다운로드받아야 하는 물건이 돼 버렸다. 기업은 사용자로부터 수익을 만들어내기 힘들어지자 사용자 대신 광고주를 소비자로 만들어 버렸고, 광고주를 섭외하기 힘든 개인 개발자나 작은 회사들은 기업에 발이 묶일 수밖에 없게 됐다. 이런 현실 속에서 애플은 앱스토어를 통해 사용자로부터 수익을 얻어낼 수 있는 수익 구조를 만들어줬고, 불법 복제와 기업의 횡포 때문에 돈을 못 벌던 개발자들은 이 블루 오션을 놓치지 않았다. 대박의 꿈을 꾸는 개발자들이 각양각색의 앱을 개발해 올리기 시작했고, 수많은 앱이 사용자들에게 사랑을 받으며 무럭무럭 자라났다.
하지만 이 또한 흘러간 시절의 얘기가 됐다. 앱스토어에는 이미 50만 개의 앱이 자기를 좀 봐달라고 아우성치고 있고, 어제 나온 앱들은 오늘 나온 앱들에 밀려 찾아보기 힘들 정도로 빠르게 돌아가고 있다. 굉장히 번뜩이는 아이디어로 앱을 만들어도 운과 때가 맞지 않으면 역사 속 유물이 돼버린다. 나는 유럽 여행 도중 지하철역 한 벽면을 통째로 차지한 스키 정보 앱의 광고를 보며 ‘아, 이제는 이 시장도 쉽게 뛰어 들어 성공할 시기는 지났구나’라는 생각이 들었다. 자본이 앱의 성패에 관여하기 시작한 것이다. 앱의 춘추 전국 시대가 끝나가고 있다. 이곳에서 살아남으려면 특별해야 한다.

이 책의 저자 켄 마스크레이(Ken Maskrey)는 첫 장에서 독자에게 질문을 던진다. ‘여러분은 어떻게 그 수많은 앱 중에서 여러분의 앱을 도드라지게, 모두가 갖고 싶어지게 만들 생각인가요?’ 그는 질문에 대한 답으로 액세서리를 제시한다. 이 액세서리는 아이폰에 붙이는 예쁜 곰돌이 인형을 얘기하는 것이 아니다. 이 책에서 액세서리란, 아이폰 하단의 독 연결 잭에 물려 사용할 수 있는 외부 하드웨어 장치를 의미한다. 아이폰에 신용카드 리더를 장착할 수도 있고, 라디오 송신기를 장착해 자동차 라디오로 아이폰에 있는 음악을 들을 수도 있으며, 휴대용 프로젝터를 연결해 텅 빈 공간을 극장으로 만들 수도 있다. 이 얼마나 멋진 일인가? 아이폰은 만능이 아니다. 하지만 우리는 아이폰의 기능을 무한 확장해 만능으로 만들 수 있다.

이 책은 아이폰을 만능으로 만들어 줄 액세서리 디바이스에 대한 정보를 처음부터 끝까지 차근차근 얘기해준다. 저자는 처음 개발의 시작과 준비물은 물론, 각종 프로토콜과 부품들, 등록 프로세스, 심지어 포장 상자를 구입하는 방법까지도 말해준다.

오늘날 우리는 1969년 나사(Nasa)가 우주로 우주선을 날리던 기술력을 가지고 새들을 돼지들에게 날리고 있다고 한다. 아이폰이 가진 기술력과 잠재력은 절대로 지금이 한계가 아니라는 뜻이다. 상상은 창조를 만들고, 창조는 소비자를 모으며, 소비자는 성공을 제공한다. 그리고 액세서리 디바이스는 그 상상력을 한 차원 더 높게 만들어 줄 것이다. 그 이후는 여러분의 몫이다. 건투를 빈다. 여러분의 액세서리 디바이스가 애플스토어에서 절찬리에 판매되기를 기대하겠다.

- 역자대표 이성원


[ 옮긴이 소개 ]

이성원 (서울대학교 HCI 연구실)
서울대학교 컴퓨터 공학부 출신으로, 휴학 후 2006년부터 2년간 (주)네모다임의 개발자로 있었다. 2007년 웹 개발 동아리 와플스튜디오(http://www.wafflestudio.com)의 창단 멤버였고, 2009년 3대 회장을 역임했다. 서울대학교 강의 평가 서비스(http://www.snuev.com)의 초기 버전을 개발했다. 2010년 스웨덴에서 교환 학생으로 지내던 중 스웨덴어-영어 번역 웹서비스의 아이폰 앱 개발 아르바이트를 하면서 아이폰 개발을 접했고, 현재 서울대학교 HCI(Human Computer Interaction) 연구실(http://hcil.snu.ac.kr)에서 아이폰을 사용한 연구를 진행 중이다.

윤주식 (서울대학교 산업공학과)
서울대학교 산업공학과에 재학 중이며, 컴퓨터공학을 부전공 중이다. 2010년부터 웹 개발 동아리 와플스튜디오에서 활동하면서 웹 개발과 기획, 안드로이드 앱 개발 등에 참여 중이다.

이두희 (서울대학교 실시간 유비쿼터스 시스템 연구실)
서울대학교 컴퓨터 공학부를 졸업했고, 현재 동대학교 박사과정에 재학 중이다. 2007년 서울대학교 웹 개발 동아리 와플스튜디오를 창설했고, 초대회장을 역임했다. 서울대학교 강의 평가 서비스를 개발했고, 현재 서비스를 총괄한다.
01x로 시작하는 핸드폰 번호 때문에 스마트폰을 못쓰고 있지만, 스마트폰 앱 개발뿐만 아니라 안드로이드 커널 개발에도 관심이 있다. 서울대학교 실시간 유비쿼터스 시스템 연구실에서 스마트폰 반응성 향상에 관한 연구를 진행 중이다.

목차

목차
  • 1부 액세서리란
  • 01장 액세서리 개요
    • 남들과 다르게
    • 액세서리
    • 액세서리의 활용
    • 액세서리: 조망하기
    • 신용카드 리더기
    • 프로그래머로서 할 일
    • 소프트웨어적 접근법
    • 퐁 게임
    • 임베디드 시스템
    • 액세서리 제작
    • 정리
  • 02장 EA 액세서리 프레임워크
    • 프레임워크
    • 스트림
    • 프로토콜
    • 프로토콜 심화 학습
    • EA 프레임워크
      • EAAccessory 클래스 속성
      • EAAccessory 클래스 상수
      • EAAccessoryManager 클래스
      • EASession
    • 정리
  • 03장 EA 프레임워크 디자인 패턴
    • 객체지향 프로그래밍
      • OOP의 기초
      • UIApplication 클래스
    • 델리게이션
    • OOP와 델리게이션
    • MVC
    • 노티피케이션
    • EA 패턴
    • 정리
  • 2부 프로젝트 연습
  • 04장 게임 컨트롤러
    • 그리핀 아이트립
      • 아이트립 해부
    • 게임 컨트롤러 디자인
      • 게임 컨트롤러의 함수
    • 전기적 디자인과 물리적 디자인
    • 테스트 소프트웨어
    • 정리
  • 05장 퐁 게임 기획
    • 최대한 단순하게
    • 스펙 문서
      • 첫 페이지: 도안
      • 요구 사항 정리
    • 정리
  • 06장 퐁 게임 코딩
    • 아키텍처
      • 애플리케이션 생명주기
      • 퐁 게임 아키텍처
      • 애플리케이션 델리게이트
      • 뷰 컨트롤러
      • Nib 파일
    • 정리
  • 07장 게임 컨트롤러 추가
    • 게임 컨트롤러 테스트 프로그램
    • 게임 컨트롤러 객체
      • 게임 컨트롤러 인터페이스
      • 게임 컨트롤러 구현
      • 뷰 컨트롤러 수정
    • 정리
  • 08장 디자인 개선
    • 성능에 관한 사항
    • 보안에 관한 사항
      • 결제 카드 산업
      • 코드 변경
    • 정리
  • 09장 애플 개발자 프로그램
    • 맥 개발자
    • 아이폰 개발자
    • 애플 개발자 커넥션
    • 아이팟/아이폰용 인증 프로그램
    • 사업 운영
    • 정리
  • 3부 액세서리 디자인
  • 10장 하드웨어 디자인
    • 시작
    • 디자인 프로세스
      • 부품(프로세서) 선택
      • 프로토타이핑
      • 회로 디자인
      • PCB 디자인
      • 제작
      • 통합과 테스트
    • 정리
  • 11장 펌웨어
    • 나는 PC!
    • 컴파일러
    • 프로그래밍
    • 디버깅
    • PCB
    • 구조
    • 칩 설정
    • 정리
  • 12장 기타 모든 것
    • 도구와 테스트 장비
      • 도구
      • 테스트 장비
    • 기계적 디자인
      • 맞춤형 기계적 디자인의 대안
    • 포장
    • 사업 프로세스
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안