2012. 10. 12. 금요일
아외로워
'아이폰 앱개발 일지' 지난 글 읽기 |
열분덜이 잊어버렸을까봐 다시 이야기 하지만 이 연재는 수학병신 문과생 출신 딴지 기자가 딴지일보 공식 앱을 직접 만드는 이야기를 담고 있다. 아마도 세계에서 유일한 1인칭 주인공 시점의 강좌로서, 전지적 작가시점으로 제공되는 다른 강좌들과 차별화 되는 부분이라 하겠다.
지난시간, 우리는 아이폰 프로그래밍을 위해 맥(Mac)이 반드시 필요하다는 사실을 깨달았다. 따라서 이후의 강좌는 여러분이 소말리아 어린이 수 백 명을 살릴 수 있었을지도 모르는 귀중한 돈을 매킨토시 나부랭이를 사는데 사용했거나, 혹은 해킨토시 등 그에 준하는 무언가로 최신 맥 OS X(‘오에스텐’이라고 읽는다)이 깔린 컴퓨터를 구했다고 가정한다. 즉, 맥이 있다면 따라오고, 없다면 시리즈가 좀 더 진행되는 꼬라지를 지켜보다가 맥을 살지 말지 결정해도 늦지 않을 것이다.
앱 개발에 필수적이라는 Xcode는 어디에서 구하는 걸까? 예전에는 구하기가 어려웠다는데 요즘엔 그렇지 않다. 맥을 가지게 됐다면 본능적으로 알게 됐을 테고, 따라서 굳이 설명하지 않아도 알겠지만 맥에는 ‘앱스토어’ 라는 것이 있다.
이 앱스토어라는 것이 아이폰 앱스토어랑 모양도 비슷하고 기능도 비슷하다. 저기 들어가면 다른 앱들을 다운로드 받을 수 있다. 무료도 있고 유료도 있다.
내가 정확하게 알고 있는 것인지는 모르겠는데, 모든 애플리케이션(이후 앱)을 한 곳에서 받을 수 있는 스토어 같은 것을 만드는 아이디어는 리눅스에서 처음 나왔다. 리눅스는 대부분의 앱이 오픈소스라 저작권을 조율할 필요가 없었기 때문에 감히 시도 할 수 있었을 것이다.
데비안 계열 리눅스(우분투 등)에서는 아주 옛날부터 터미널에 ‘apt-get’ 명령어로 거의 모든 오픈소스 소프트웨어를 받아서 설치 할 수 있었다. 레드헷 계열에서는 아마도 ‘yum’이었을 거다. 즉, 리눅스는 옛날옛날부터 인터넷만 연결되어 있으면 응용프로그램 설치하려고 윈도우에서처럼 시디 갈아끼고, 시디키 쳐 넣고 할 필요가 없었던 거다.
예를 들면 이렇게 사용하는 건데, 지금 이 컴퓨터가 리눅스가 아니고 맥이기 때문에 작동하지는 않는다.
리눅스가 딴건 불편해도 이거 하나 되게 편리했다. 물론 저렇게 터미널에서만 사용하는 것도 아니고 ‘시냅틱’ 이라는 GUI환경도 존재한다. 시냅틱이 지금 생각하면 앱스토어랑 똑같은 거다. 이 아이디어가 MS윈도나 맥OS보다 아이폰에서 먼저 차용되었다는 것이 신기하기도 하고 뭐 그렇다.
여튼 앱스토어를 실행하면 이런 화면이 나온다.
오른쪽 위에 있는 검색창에서 Xcode를 검색하자.
그러면 당연한 말이지만 Xcode가 나온다.
보다시피 무료다. 저걸 누르면 다운로드가 되고, 총 용량이 2GB정도 되니까 좀 기다리면 설치가 완료된다. 드디어 우리는 아이폰 프로그래밍을 위해 필요한 모든 것을 가지게 됐다. 짜잔.
Hello World!
이제 본격적으로 프로그래밍을 해보자. 프로그래밍을 배우다 보면, 어떤 언어를 배우더라도 가장 먼저 만나는 용어가 바로 “Hello World!” 다. 세상에 안녕하시냐고 말하는 이 시덥잖은 문구는 프로그래밍을 배우는 모든 사람들이 한 번은 써보게 되는 문구다.
‘hello world’를 화면에 출력하는 초초초초 간단한 코드를 작성함으로써 프로그래밍이 어떤 건지 맛도 보고, 애써 구축한 개발환경(물론 우리는 애써 구축하지는 않았다. 돈이 들었을 뿐)이 정상적으로 작동하는 건지도 확인해 보고 하는 것이다.
텍스트를 벗어나 이미지 파일을 다루기 시작하면 ‘hello world’ 처럼 관습적으로 다루는 이미지 파일이 lena.bmp(사진)다. 사진속 인물은 1972년 11월호 플레이보이지 모델이었던 51년생 스웨덴인 Lena Soderberg라는 이모님이다. 지금은 고국에서 잘 살고 계신다고. 이 사진이 개발자의 친구가 된 것은 디지털 이미지 압축을 연구하던 남캘리포니아대학 어떤 연구자가 플레이보이 잡지를 스캔한 뒤 온라인으로 전송하는 실험을 한데서 유래했다고 한다.
위키피디아에 따르면 ‘hello world’ 가 컴퓨터 프로그래밍 역사에 처음 등장한 것은 1972년 Tutorial Introduction to the Language B 라는, B언어(C언어 이전의 언어)를 해설한 책에서였다. 그러다 지금과 같이 ‘hello world’ 를 출력하는 코드로 쓰인 것은 C언어1974년 벨 연구소 내부문건에서였다. 이 내부문건을 작성한 커니헨 이라는 양반이 1978년에 C언어 책을 써서 팔았는데 여기에도 ‘hello world’ 코드가 들어가 있었던 것이다. C언어가 인기를 얻으면서 이 책도 많이 팔렸고, 따라서 ‘hello world’도 일반화 된 것이다.
뭐 그랬다는 것이고, 일단 헬로월드를 찍어보자.
Xcode를 실행하면 아래와 같은 화면이 뜬다.
여기에서 눈치 챈 분들 계시겠지만, 그렇다. Xcode는 한글을 지원하지 않는다. ㅋㅋㅋㅋㅋ 몰랐지? 일본어는 지원하는 거 같던데 한글은 지원 안한다. 머 이정도 영어쯤이야.
새 Xcode프로젝트 만들기를 눌러주자.
이런 화면이 뜬다. 우리는 당장 아이폰 응용프로그램을 만드는 것이 아니다. 엄청엄청 단순한 코드를 작성하는 것이므로 OS X 애플리케이션에 있는 Command Line Tool을 선택해 준다.
그러면 아래와 같은 화면이 뜬다. 제품 이름 등 정보들을 임의로 넣어준다. 지금 만드는 프로그램이 뭐 엄청 중요한 것은 아니니 지나치게 고민하지는 말자.
다만, Company identifier 밑에 있는 Type은 반드시 ‘Foundation’ 으로 해준다. 기본값은 ‘C’다. 그리고 그 아래 있는 ‘Use Automatic Reference Counting’ 항목도 체크해 준다(기본적으로 체크 되어 있다).
마지막으로 프로젝트가 저장 될 위치를 지정해주면 된다. 맥은 최근 저장하기 버튼을 따로 누르지 않아도 되는 시스템을 완성했다. 워드프로세서나 Xcode나 메모장이나 뭐 여튼 아무거라도, 전기가 나가거나 컴퓨터가 갑자기 꺼졌다고 작업한 자료가 날라갈 가능성은 지극히 낮다. 한글 맞춤법 검사 안 되는 거만 빼면 워드작업에 최고다.
어쨌든 저장 될 위치를 지정해주면 아래의 화면이 뜨게 된다.
하하하하 뭐가 뭔지 벌써 하나도 모르겠다. 그래도 당황하지 말자. 서문에서 말했던 바와 같이 겉보기에는 복잡해 보이는 화면도 실은 프로그래밍에 최적의 환경을 제공하려는 애플 엔지니어들의 따뜻한 배려로 만들어진 것이라지만 어쨌든 뭐가 뭔지 모르겠다.
우리가 고대하던 ‘hello world’ 프로그램을 작성하기 위해서는 코드가 담겨있는 파일을 편집해야 한다. 코드가 담긴 파일은 요기있다.
서문에서 말했던 것과 마찬가지로 우리가 아이폰 앱을 만들기 위해 사용하는 언어는 Objective-C(오브젝티브 씨)다. 오브젝티브씨의 소스코드 파일은 그 확장자가 m이다. 즉, main.m 파일은 오브젝티브씨 소스코드를 담고 있는 파일이라는 말이다. 그 외의 다른 것들을 차차 알아가도록 하자. 솔직히 다른 건 나도 모른다.
어쨌든 main.m을 누르면 드디어 소스코드가 뜨고 드디어 우리는 ‘hello world’를 출력하는 코드를 작성하는 거….
….라고 생각했는데, 헬로월드 코드가 이미 짜져있다. 이런 황당한 경우가 있다. 이미 짜여져 있는 코드를 자세히 들여다보자.
아니다. 코드는 나중에 들여다보자. 지금은 봐도 뭐가 뭔지 잘 모르겠으니까. 이건 나중에 알아보기로 하고, 누군가가 친절하게 짜놓은 “hello world” 코드를 실행이나 시켜 보자.
실행시키기 전에 디버거 창을 켜야 한다. 왜냐면 여기 코드가 엄청 단순한 거라 결과가 디버거 창에 표시되기 때문이다. 디버거 창 켜는 버튼은 화면 오른쪽 위에 있다.
그리고 오른쪽 위에 보면 코드를 실행하는 버튼이 있다. 이 버튼이 무슨 기능을 하는지 매우 직관적으로 생겼다.
저거 누르면 코드가, 빌드(build)한다고 하는데, 컴파일 된 뒤 실행된다. 과감하게 누르면….
요런 마크가 뜨고 하단의 디버거 창에는…
이렇게 ‘헬로 월드’ 가 뜨게 된다. 이게 바로 우리의 첫 번째 프로그램이다 하하하하 엄청감격적이지 않나? 내가 쓴 코드가 이렇게 출력되다니, 라고 생각하는 사람도 있겠으나 대체로 이게 언제 앱되나 하는 막막함을 느낄 것이다. 앱을 만들려면 이렇게 코드를 치고 있어야 하는 걸까? 우리가 알고 있는 앱도 이렇게 만드는 걸까?
아니다. 아이폰 앱은 훨씬 우아하고 직관적인 방법으로 만들어진다. 오브젝티브씨는 기능을 구현하는 것이고, 겉모양을 만드는 방법은 따로 있다. 물론, 본격적인 앱 개발 이전에 Objective-C라는 언어를 배우는 지난한(것으로 추정되는)과정이 있어야 겠지만 그래도 앱이 어떻게 만들어지는지 대충은 살펴보자. 아, 짤랐다가 가자. 삽질 더 비기닝 下편에서 보자.
아외로워
Ddanzi.Lonely@gmail.com
첫댓글 캭오!!! 최곱니다