요즘 만나는 개발자들 중에는 애플 앱스토어에 프로그램을 만들어 올리려고 준비중인 분이 참 많습니다. 꼭 거기에서 떼돈을 버는 게 아니더라도 애플 앱스토어에 자신이 만든 애플리케이션을 등록하고 수익을 내 보는 건 참 좋은 경험이 될거라고 생각됩니다. 하지만, 막상 해보면 별다른 가이드가 없어서 시행착오를 겪는 분들이 많더군요. 그런데 마침 호랭이가 만드는 '마이크로소프트웨어'에 먼저 앱스토어에 애플리케이션을 올리고 그 경험기를 기고해 주신 분이 있어 공유합니다. 블로그에 쓰기엔 내용이 좀 길어서 3회 분으로 나누어 올리겠습니다. 아이폰용 애플리케이션 개발을 준비하고 있는 분들께 도움이 되길 바라겠습니다.
아이마소 | www.imaso.co.kr
요즘 우리나라 개발자들 사이에서는 애플의 앱스토어에 대한 관심이 높다. 필자는 프로그램을 개발해 앱스토어에 올리고, 매일 조바심내며 판매실적을 지켜보고 있다. 이 글은 그런 필자의 현재 진행형 경험기다. 누군가는 앱스토어에 프로그램을 올린 우리나라 개발자가 한 둘이 아닐진대 왜 하필 필자의 경험을 『마소』지면에 올리냐고 물을 수도 있다. 나의 대답인 즉, 학교에서 학생들에게 소프트웨어 관련 과목을 주로 가르치면서, 막상 앱스토어에 프로그램을 올려서 판매하다보니 ‘학생들이 한 번 해 보면 여러 가지 배우고 얻는 것이 많겠구나’라는 생각이 들어서다. 미리 말해두지만 필자가 만든 프로그램이 크게 성공해서 이 글을 쓰는 것은 아니다. 필자의 경험기를 읽고 한 번쯤 앱스토어를 경험해 보는 학생들이 많아지길 바라는 마음이 이 원고의 ‘빌미’다.
전경구 kjun@incheon.ac.kr|미국 Purdue university에서 전산학 석사와 박사 학위를 받고, 삼성전자 책임연구원을 거쳐 2004년부터 인천대학교 멀티미디어시스템공학과 교수로 재직 중이다. 학교에서는 소프트웨어 관련 과목을 주로 가르친다.
일단 앱스토어에 대해 알게 된 얘기부터 시작하자. 올 해 1월쯤 『마소』를 뒤적이다 앱스토어에 대해 자세히 소개된 글을 읽게 됐다. 웹 검색을 해보니 앱스토어란 사이트는 애플의 아이폰이나 아이팟 터치에 올라가는 프로그램을 전 세계 누구나 만들어 올려 판매할 수 있고, 사 갈 수도 있는 곳이었다. 자신이 개발한 프로그램을 업로드하면 그것을 전 세계의 누군가가 돈을 내고 구입한다. 물론 한 가지 조건은 있다. 총 수익의 30%는 애플이 가져간다는 것이다. 앱스토어 사이트를 관리해야 하니 이는 당연하다. 직거래 장터도 부녀회가 어느 정보의 수익을 확보해야 잘 운영되는 것과 같은 원리다.
“그 후 바로 앱스토어에 올인, 프로그램 개발을 시작해 올리자마자 바로 대박이 나 평생 놀고 먹게 됐다는 해피엔딩이다”라고 하면 경험기를 쓰지도 않았을 것이다. 게다가 대박도 나지 않고 있으니 독자 여러분들께서는 일단 배 아플 필요가 없겠다.
앱스토어 바다의 펭귄이 되다
앱스토어 프로그램 개발을 결심하기 전에 가장 먼저 부딪친 것은 여러 가지 망설임들이었다. 우선 시간적인 문제가 가장 컸다. ‘강의, 연구와 논문작성은 기본이고, 수행중인 프로젝트도 진행해야 하는데 과연 틈을 낼 수 있을까?’.
두 번째는 개발환경에 대한 낯설음이었다. 대부분 윈도우 환경에서만 살아왔기에 매킨토시에서 개발해야 하고, Objective-C라는 언어까지 새로 배워야 했으니 말이다. 아마도 학생 독자들이 이 글을 보고 있다면 필자와 같은 고민을 할 것이다. 강의, 숙제, 시험, 토익, 취업관련 자격증 준비에 무척 바쁘고, C나 자바도 어려운데 Objective-C까지 새로 배워야 한다면 앱스토어에 선뜻 뛰어들 결심을 하기 어려울 것이 자명하다.
이와 같은 망설임들을 한 번에 걷어낼 수 있고, 빙산 끝에서 머뭇대는 수많은 펭귄떼 중에 가장 먼저 바다로 뛰어드는 펭귄과 같은 결단력을 내도록 하는 것은 프로그래밍에 대한 호기심과 열정이다. 없는 시간은 쥐어짜면 나오는 것이고, 낯선 매킨토시에 대한 두려움은 오히려 전의를 불태워 주지 않는가. 필자가 말하고 싶은 것은 이렇다.
“프로그램 개발이 본인의 적성에 맞는가? 그렇다면 약간 주저하다가 앱스토어에 뛰어드시라. 이미 몸을 던진 수많은 펭귄들이 있으니….”
이렇게 필자도 바다로 뛰어든 펭귄이 됐다.
아이폰 프로그램 개발을 위해서는 금전적인 투자가 선행돼야 한다. 일단 인텔 프로세서 기반의 맥OS X 10.5이상이 돌아가는 매킨토시가 있어야 한다. 학생 신분이라면 요즘 출시된 90만 원 정도의 맥미니도 괜찮다. 개발된 프로그램의 필드 테스트를 위해 아이팟 터치 2세대가 있어야 하는데, 필자가 준비하던 시기에는환율 때문에 40만 원 정도인 것 같다. 이와 함께 앱스토어에 프로그램을 올리기 위해서는 100달러를 내고 iPhone developer program에 가입해야 한다. 이 비용을 모두 합하면 최소 150만 원 정도의 투자가 필요하다. 이런 초기 투자비용 문제 때문에 다시 바다에서 기어 나오는 펭귄들도 있을 수 있다. 하지만 거꾸로 이런 투자비용이 앱스토어 시장에 대한 진입장벽을 만들어 줄 수도 있다는 것을 생각하면 충분히 뛰어들 만한 시장이지 않은가?
그 외 앱스토어 프로그램 개발에 필요한 하드웨어, 소프트웨어, 절차 등은 『마소』 2009년 4월호에 특집으로 잘 정리돼 있으니 참고하길 바란다.
1단계 : 개발 시작
이제 다시 필자의 경험으로 돌아와 아이폰 프로그램 개발 공부를 시작한 얘기부터 하겠다. 필자가 공부하는 스타일은 제대로 된 입문서를 처음부터 끝까지 차근차근 살펴 토대를 다진 후에 실제 프로그램을 만들어 가며 부가적인 살을 붙이는 식이다.
입문서 통해 기반 다지기
이에 첫 번째 단계의 입문서로 선택한 서적이 Apress사에서 출간된 『Beginning iPhone Development』였다. 이 책은 아이폰 프로그래밍 왕 초보자가 하나하나 따라 하기 쉽게 설명한다. 물론 C와 객체지향언어에 대한 기본 지식은 있어야 한다. 특히 아이폰 프로그래밍은 Xcode와 Interface Builder라는 IDE를 사용하게 되는데, 이 책은 그 사용법에 대해서도 자세히 설명한다. 단점이 있다면, 기존의 ‘왕초보 따라하기’ 스타일의 책들에 익숙한 독자들에게는 조금 힘들 수도 있다는 것이다. 그런 부류의 책들은 지면의 대부분을 캡처 화면으로 채우고 친절한 화살표가 어느 버튼을 클릭해야 하는지, 절대로 순서를 헷갈리지 않게 큰 번호 동그라미가 일일이 매겨져 있다. 하지만 이 책에서는 그런 것들을 모두 말로 풀어내고 있다. 예를 들어, ‘좌상단 위에 동그란 버튼을 누르면 다시 창이 열리고, 왼 쪽에서 네 번째 탭을 누르면 메뉴가 나오는데…’라는 식이다. 처음 공부할 때는 정신을 바짝 차리고 있으니 크게 상관없으나 추후 다시 찾아볼 때는 쉽지 않다.
무료 동영상 튜토리얼 활용
이 책을 공부하며 동시에 많은 도움을 받은 것이 iPhone Development Central 사이트(www.iphonedevcenter.org)의 무료 동영상 튜토리얼 들이다. 초급, 중급, 고급 수준의 튜토리얼들이 각각 주제를 갖고 정리돼 있다. 예를 들어, 2D 그래픽, 사운드, UI 컴포넌트 별로 사용법과 그 외의 유용한 것들을 배울 수 있다. 이와 같은 동영상 튜토리얼들은 XCode/Interface Builder 환경의 사용법을 ‘따라하기’식으로 쉽게 배울 수 있다는 장점이 있다.
애플의 동영상·문서 참조
이 외에도 여러 가지로 도움 받는 방법들이 있다. 애플에서 운영하는 iPhone Dev Center 사이트(developer.apple.com/ iphone/)에도 Getting Started 동영상과 여러 가지 문서들이 있으니 필요에 따라 찾아보면 된다.
가끔 Objective-C 언어에 대한 이해가 부족할 때가 있다. Objective-C 언어는 C기반의 객체지향언어라고 생각하면 된다. 문법이 조금 다르고 특히 메모리 관리에서 reference counting이라는 방법을 사용하는데, 이에 대해 정확히 이해하고 있어야 메모리 누수가 없는 프로그램 개발이 가능하다. 이 언어를 공부하는 데는 Apress사의 『Learn Objective-C on the Mac』이 좋을 듯 하다. C언어만을 아는 사람들의 경우 객체지향개념이 부족하고, Java언어만을 아는 사람들은 메모리 관리 개념이 부족해 아이폰 프로그램 개발에 어려움이 많다. 그러니 무턱대고 아이폰 프로그래밍을 시작할 것이 아니라 이 책과 같은 Objective-C 언어 입문서로 워밍업을 하는 것도 괜찮은 방법이다. 물론 C언어와 객체지향개념에 자신이 있다면 이 책은 가끔 뒤적거리는 용도로 사용하면 된다(필자는 Apress사와 아무런 이해관계가 없으니 오해하지 말길 바란다. 필자의 순수한 논평일 뿐이다).
정보 공유…심리적 위안
지식적인 도움 외에 심리적인 도움을 받는 방법도 있다. 앱스토어 바다로 뛰어든 펭귄들이니 처음에는 얼마나 겁나겠는가? 이럴 때 같은 처지의 펭귄들을 보면서 힘과 위안을 얻으면 된다. 네이버 카페인 ‘맥부기 아이폰 개발자 모임(cafe.naver.com/mcbugi. cafe)’이 바로 그런 펭귄들이 자주 모이는 곳이다. 여기에서 펭귄들은 각자의 개발 경험, 신변잡기, 최근 아이폰 소식 등 앱스토어와 관련된 다양한 정보들을 공유한다.
아이폰 프로그래밍을 공부하며 가능한 여러 가지 경로를 통해 정보를 얻어야 한다. 이 분야가 생긴지 오래되지 않았기 때문에 체계가 잡혀 있을 리 없다. 따라서 부지런히 발품과 손품을 팔아 좋은 정보를 얻어야 한다. 학생 독자들에게 해 주고 싶은 말은 입문지식에 해당하는 부분만큼은 가능하면 책을 통해 익혔으면 한다는 것이다. 웹 상의 지식들도 나름대로 가치가 있지만 순서가 뒤죽박죽인 까닭에 내용을 제대로 소화해 자신의 것으로 만드는 것이 쉽지 않다. 반면 책은 나름대로 체계를 갖추고 있고, ‘가르친다’는 것에 자부심을 갖는 이들이 쓴 것이기에 기본기를 제대로 닦아야 하는 학생들에게 많은 도움이 된다.