[비평] 어떤 아이폰 개발책 이야기

아이폰의 팬이되면 한 번쯤은 ‘나도 이런 앱 한 번 만들어보고 싶다’는 생각을 한 번 쯤 할 수도 있고, 조금 용기를 내거나 (개발을 위해 mac을 사기 위해서는 보다 큰 용기가 필요할 수 있음) 하여 실제로 앱 개발을 배워보려는 사람도 많이 있더라. 문제는 어디서부터 시작해야 좋을까 하는 점이다. xcode라는 걸로 앱을 만든다는데, 이게 mac에서만 돌아가서 mac을 사야한다더라… 하지만 PC에도 OSX를 설치할 수 있고 어쩌고로 시작해서 많은 이야기들이 있는데 너무나 많은 이야기들이 있다보니 어디서 시작해야 할지, 그게 참 막막할 거다.

애플 개발자 사이트에 가입해보면 자료가 많다고 하는데, 영어의 압박이 너무 심하고해서 네이버를 찾아봐도 딱히 시작하는 시점에서 할 수 있는 건 안보이고, 덜컥 비싼 mac까지 샀다면 점점 마음은 조급해진다. 그래서 이제 서점으로 발길을 돌려 책을 찾아보는데….


여기까지가 비개발자들이 아이폰 개발을 위해 시작하는 단계에서 흔히 하는 잘못 중의 하나이다. 아이폰 개발은 사실 그리 어렵지 않다. 단, 그건 개발자에 한해서이다. 비개발자가 아이폰 앱을 만드는 일은 그리 녹록한 일이 아니다. 아이러니하게도 objective-C는 정말 배우기가 쉬운 언어중의 하나지만, 이 언어를 알고 있는 것과 아이폰 앱을 만드는 일은 완전히 다른 일이라고 봐도 좋다. 심지어 Xcode의 기능을 잘 활용하면 코드 한 줄 작성하지 않고도 만들 수 있는 앱이 실제로도 존재하니 말이다.

그러다보니 “쉽고, 빠르게” 접근하려 책에 욕심을 내게 된다. 하지만 한 두 권 사서보니까, 어째 우리 나라 기술 서적 분야는 비개발자들에게 이렇게 옹색할 수가 없다. 일단 기본적인 개발에 관한 지식이나 프로그래밍 경험, 기본적인 개발언어는 알고 있다고 가정하는 책들이 많다. 그러다보니 책에서 하는 말이 무슨 소린지도 모르겠고… 책에 쓰여진 코드들은 정성들여 똑같이 써보았더니 어떤 건 실행이 되고 또 어떤 건 안된다. 그래서 조금 쉬운책, 조금 더 쉬운책…. 이렇게 책만 (게다가 비싸다. 이건 소설책하고 비교할 수 없다.) 자꾸 사모으게 되는 우를 범하기 쉽다. 게다가 아이폰에 대한 인기가 많아지고 앱을 만들어보려는 사람들이 많아지면서 이런 사람들을 겨냥한 책들이 봇물 터지듯이 쏟아져 나온다.

나 역시 도저히 왜 샀는지 이해할 수 없는 책이 한 권 있다. 모 출판사에서 나온 “도전! 아이폰 4 개발’ 어쩌고 하는 책이다. 이 책은 한 번 사 놓고 약 14페이지 가량 보고 그냥 처박아 두었다. 문득 책장에서 이 책을 발견하고 버려야겠다 생각했는데, 그냥 버리기는 돈이 너무 아까워서 다시 한 번 훑어보고 뭐가 문제인지 좀 살펴보았다.

바로 이 책이다.

가격은 36,000원. 1주일 용돈에 달하는 금액이다. 비싼 가격에 걸맞게 풀컬러로 만들어져있다. 그때문인지 분량은 개발책치고는 좀 적은 편인데, 대부분이 큰~ 아주 큰~ 그림들과 소스코드라서 실제 내용은 별로 없다.

책을 펼치면 올컬러의 화려한 목차와 그외 쓸데 없는 내용들이 많이 나온다. Xcode를 설치할 줄 모르는데 개발을 할까 의문이 들지만, 저자들은 요딴 책들을 몇 번 써본 경험이 있는지 그런 내용들과 Xcode의 스크린샷 여러 장들, 앱스토어에 앱 제출하는 방법, Objective-C 입문이라는 내용들로 초기 100장이 채워진다.

100장이다. 10장이 아니라. 참, 목차만 10장이더라. 지구가 숨쉬는 데 필요한 나무는 안중에도 없다.

어차피 이 책을 봐서는 절대로 앱스토어 제출할 수 있는 수준의 앱을 만들 수 없으므로 앱스토어에 앱을 제출하는 방법을 쓴 이유가 뭔지는 모르겠다. 그냥 쓸 말이 없으면 안써서 책을 가볍게 만들어줘야지 집에 사들고가는 수고라도 덜할 거 아니냐. 그리고 Objective-C에 대한 냉용은 정말 성의없다. 언급 자체가 피곤한 일이니 패스.

그 다음부터는 7개 정도의 예제를 따라 만들도록 하는데, 상당히 문제가 많다. 아까도 이야기했지만 이 책은 쓸데 없는 내용이 정말 많다. 각각의 예제는 다 완성한 앱의 스크린샷이 엄청 많이 들어있고, 디자인 스케치, 앱을 구성하는 UI가 UIButton인지, UILabel인지를 표시하는 그림, 소스 코드를 써 놓은 Xcode를 캡쳐해 놓은 그림.

욕이 나온다.

그림을 넣고 싶다면 간략하게 동작하는 모양의 스크린샷 한 두 장이면 됐다. 그리고 또 넣고 싶다면 최소한 만드려는 앱이 어떤 구조로 되어 있는지 하는 도표도 넣으면 좋지 않은가. 아마 이 책의 저자들은 Omni Graffle을 쓸 줄 몰랐거나, 아니면 일러스트레이터로 쉽게 그릴 수 있는 박스 몇개 그리는 것 조차 귀찮았던 것 같다.

소스 코드의 글자 색상은 그렇게 친절할 거면 Xcode의 하이라이팅과 동일한 색상을 해줬으면 좀 좋아? 따라 쓰면서 오타가 있는지 금방 알 수 있게 말이지.

가장 심각한 문제는 소스코드 부분의 오탈자가 많다. 따라서 “멋진 앱이 나오겠지”라고 생각하고 책을 보고 열심히 타이핑한 고객님들은 Build & Run 만 계속 클릭하면서 하염없이 눈물만 흘릴 우려가 크다.

그리고 애플에서도 가장 중요하다고 강조하는 MVC에 대한 고민이 전혀 없다. 소스도 그다지 잘 정리되지 않고, 심지어 변수나 클래스의 네이밍 역시 가독성 따위는 무시한다. 변수명 쓰는 스타일을 보니까 이 책의 저자들 역시 Objective-C나 UIKit에 그리 많이 알고 있는 것 같지는 않고, 플래시 만드는 사람들이었던 것 같다.

그냥 보여주기 식의 앱들일 뿐이라, 이 책에서 다루는 거의 모든 내용은 책으로 낼만한 내용이 아니다. 대략의 내용들을 훑어보자면

1. 시계 : 시각에 따라 사각형이 생겼다 없어지는 효과를 주는 시계앱이다. 환경 설정하는 부분을 제외하고 동작하는 부분만 만든다고 하면 UIView의 서브클래스만 하나 만들면 된다.

2.관광지 안내 책자를 앱으로 만드는 건데, Xcode4에서는 코드 한 줄 없이 스토리보드로만 구현가능하다. 단, 지도 상에 위치를 표시할 수 있는 기본적인 기능을 ‘쓰고 있는 사실을 알리는’ 수준의 내용이 있다. 그런 기능을 제대로 소개도 안한다.

3. 메모 앱같은 걸 만든다. 이 블로그에 세 번에 걸쳐서 다른 방식으로 메모 앱을 만드는 글을 썼었다. 100페이지가량을 소비하면서 무슨 말이 그렇게 많은지… 물론 대부분의 지면은 메모장 디자인을 만들었다고 이쁘지? 하고 보여주는 내용에 할애된다. 심지어 저장은 SQLtie3으로 한다. 메모를 1만개 이상 작성할 헤비한 유저들에게 어울리나 보다. 참고로 SQLite3는 iOS에서 지극히 느리다. DB파일의 크기가 1메가를 넘기 시작하면 극도로 느려지고 iOS5에서는 더 느리다. 이에 대해 애플은 코어데이터를 쓰라고 권장한다. (SQLite3를 연동하는 가이드는 개발자 센터 내에서 문서를 찾을 수 없게 되었다.)

4. 간단한 트위터 클라이언트라고 거짓말한다. 그냥 Public API로 트윗을 받아와 뿌려주는 내용이 전부다. 사용자 인증 등의 내용을 모두 뺐기 때문에 이 앱으로는 트위터를 할 수 없다.

5. 포스퀘어 앱이란다. 트위터 사기와 동일한 수법이다.

6. Cocos 2d를 써서 게임을 만든다고 한다. 물론 자신들이 신나게 예제를 만든 과정을 소개하고 있을 뿐, cocos 2d에 관심없다면 패스해야 하고, 관심있다면 cocos2d 홈페이지를 참고하라고 하고 있다.

7. 2에서 만든 앱을 아이패드로 만드는 과정을 소개하고 있다.

전체적으로 예제를 따라해보면서 뭔가 배우거나 익히기가 불가능한 구성이다.

 

이 책을 훑어보고 느낀 점을 요약해 보자.

  • 이 책의 저자들은 책으로 누군가에게 앱 개발을 가르칠 수 있는 사람들이 아닌 것 같다.
  • 그러다보니 학교 과제 수준의 앱을 기획하고 , 스케치하고 디자인하는 과정을 지나치게 자세하게 묘사해준다. 돈주고 책 산 사람에게는 책장 넘어가는게 아까울 지경이다.
  • 쓸데없는 곳에 지면을 할애한 결과, 조금이라도 설명이 많이 필요한 기능이나 개념은 “예제니까” 쏙 빼린다. 4번 5번 프로젝트가 그런 예다.
  • 이 책이 나온 시점이 Xcode 4가 나온 시점과 거의 겹친다. 덕분에 책을 보고 xcode를 보면 많이 다르다. Xcode의 개념에 대해 본인들도 이해를 못하니 개념 설명을 할 수가 없고 책을 산 사람들은 Xcode4 책을 따로 사야할 판이다. (정작 저자들은 ‘애플이 너무 부지런해서 탈이다’란 조로 까페에 글을 달았더라.)
  • 앱의 디자인은 그럴싸한데 구현은 비전문가가 만든 것 같다.
  • 그런 구현마저 소스 코드가 실행안되는 문제가 많다. 책을 급조하느라 출판된 책의 코드를 따로 타이핑해보지 않은 것 같다. 이건 개발책을 만드는 사람으로서 기본적으로 독자들에게 지켜야할 예의같은 것이다. 사람들을 개발책을 보면서 다른 곳에 오탈자에 대해서 불평하지 않는다. 하지만 소스코드의 오탈자는 책의 품질을 말하는 척도이다.
  • 대학생들이 앱 공모전에 출품할 때 어떤 과정을 거쳐야할지, 싸이월드나 블로그에 멋지에 보이려면 어떤 식으로 사진을 추려서 연출할지는 도움을 줄 것 같다.
  • 결코 이 책은 앱 개발을 시작하려는 사람에게 어울리지 않는다. 안되는 소스코드를 붙잡고 네이버 지식인에 질문 올리는게 이 책이 말하는 ‘도전’이 아니라면 말이다.
  • 이 책에서 설명하는 예제 수준의 앱을(이정도는 구글링만 좀 해보면 튜토리얼이 널렸다.)  한 두 개 만들어본 사람이라면, 이미 이 책의 수준을 넘어섰을테니 필요없다. 컬러라서 냄비 받침 하기도 좀 그렇다.
  • 이미 이런 불평불만이 네이버 까페에 넘치고 있다.

그러면 도대체 개발자도 아닌 사람들은 아이폰 앱을 만들지도 못하고 이런 책에 사기 당해야 하는 것일까? 그래서 다음 글에서는 어디서 시작하면 좋을지에 대해서 좀 이야기해 보고자 한다.

편의점도 갈 겸, 책이나 버리고 와야겠다.

  • Ji_dung

    학교에서 아이폰 앱 개발 방학 특강을 열었는데 이 책을 공짜로 주더군요. 다행히 강의는 강사분들의 강의자료로 진행되어서 알찼지만 3만6천원짜리 책 받았다고 좋아하며 펼쳐보니 이건 뭐… 제 돈 주고 산게 아니라 정말 천만 다행입니다.

    •  네 저도 첫 책이 이거라 엄청 좌절스러웠습니다. iOS 책은 아니지만 애런 힐리가스가 쓴 코코아책은 상당히 괜찮았구요. 최근에 쏟아지는 많은 책들 중에서는 제대로 된 책을 고르기란 어려운 듯 합니다. 공부를 해 나가면서 깨달았는데 제일 좋은 자료들은 모두 애플 개발자 센터에 있는 문서들이더군요.

  • Amethyqua

    매우 공감하는 바입니다.