티스토리 툴바


지난 시간에 이리저리 부산스럽게 준비하던 내용들 중에 혹시 http://developer.apple.com/resources 라는 링크를 기억하시나요? 해당 링크로 들어가보시면 금방 아시겠지만, 애플에서 제공하는 방대하면서도 최신 버전의 온갖 리소스들을 만날 수 있을 것입니다.

만일, 여러분이 저와 같이 이제 막 맥에서 iOS 용의 혹은 OS X용의 애플리케이션을 개발하고자 공부를 시작했다면 이 링크 중에서도  iOS Developer Library의 맨 처음에 위치하고 있으면서 마치 초보자에게 적당(?)한 것처럼 보는이로 하여금 여기도록 준비된 문서 하나를 기본으로 iOS 프로그래밍 맛뵈기에 도전해보려고 합니다. 

바로 "Your First iOS Application"라는 제목의 글이 그것인데요,
이 문서가 초보자들에게 유용하다고 생각되는 가장 큰 이유는, 대부분의 많은 참고 서적들에서처럼  문법적인 기초를 우선 설명하고 본격적으로 개발에 접근하자라는 식의 통상적인 구성(사실, 제 경우에는 이런 구성을 너무 싫어합니다. -_-;)이 아니라 일단은 최소 수준의 어플리케이션을 하나 만들면서 그에 필요한 환경에 대해 언급하면서부터 시작해서 "이것을 위해서는 이런 지식이 있어야 한다~, 저것을 위해서는 무엇에 대해서는 일단 개념을 파악하자~" 하는 식으로 그 때, 그때 필요한 기본 지식들(ex. Cocoa fundamentals Guide로의 링크)을 하이퍼 링크로 연결되어져 있습니다.

Your First iOS Application


 이 과정을 통해 우리는  iOS 환경을 위한 개발에 있어서 가장 중요하고 기본이되는 아래의 세가지 "T" 에 대해서 배울 수 있습니다.

  • Tools: 프로젝트의 생성과 관리를 위한 Xcode의 사용법 배우기
  • Technologies: 사용자 입력에 반응하는 어플리케이션 만들어보기
  • Techniques: iOS 앱 개발의 밑바탕이 되는 기본 디자인 패턴 활용법 익히기


자, 이제 잡설은 그만하고 2편에서 미리 준비해 둔 Xcode를 한번 실행해보도록 하죠~
OS를 10.7 버전 이상으로 맞추고 Xcode도 4.2 이상으로 업그레이드가 되어 있는 상황이라면  프로그램을 실행하면 다음과 같은 화면이 보일 것입니다. (Xcode의 아이콘이 응용 프로그램 그룹에서 보이지 않는다면, /Developer/Applications 를 찾아보면 아마 보일 것입니다.)

한번도 프로젝트를 생성해본 적이 없다면 위와 같이 우측이 비어있는 시작화면을 만날 수 있을 것입니다.
(2011년 10월 현재 Xcode의 버전은 4.2 (4D151)이다!)

위 메뉴를 만나게되면 새로운 프로젝트의 생성을 위해 "Welcome to Xcode"라는 문구의 아래 쪽에 위치한 "Create a new Xcode project" 메뉴를 선택합니다. 하지만 Xcode가 이미 실행되어 있는 상태라면, 메인 메뉴 상의  File > New > New Project 메뉴를 통해 위와 같은 프로젝트 생성 메뉴로 접근할 수 있습니다.

메인 메뉴를 통한 신규 프로젝트 생성



프로젝트 생성 메뉴를 실행하게 되면, 아래와 같이 iOS와 Mac OS X 용의 프로젝트를 생성할 수 있도록 각각의 카테고리로 구분된 프로젝트 템플릿들의 구분 집합을 보실 수가 있을 겁니다. 예를 들어 여러분이 아래 그림에서 보이는 iOS용 프로젝트 템플릿 중 OpenGL Game 이라는 템플릿을 선택하게되면 Xcode는 자동으로 게임 제작을 위해 필요한 OpenGL 관련 리소스들이 사전에 포함된 프로젝트를 생성해주는 식이 되겠습니다.



여기서 우리는 iOS용의 아주 간단한 일반 애플리케이션을 만들어볼 것이기 때문에 좌측 구분에서 iOS의 Application을 선택하고 내서 우측의 템플릿 등 중  "Single View Application" 템플릿을 고른 후 하단의 Next 을 눌러보도록 합니다. (괜히 다른거 눌러봐야 눈으로 보이는 것은 별로 차이가 없습니다. 진도 빼려면 저처럼 이거저거 눌러보다가 시간 보내지 마시고 그냥 누르세요~ ㅎ)

다음 버튼(Next)을 누르고 나면 아래와 같이 Product Name, Company Identifier등의 프로젝트 정보를 입력하는 화면이 나타납니다.
아래에 보시는 바와 같이 저는 이 프로젝트를 위해서 HelloWorld를 입력했는데요, 우리가 아무리 맥 환경에 스마트폰 앱을 개발하는 입장이라고 하더라도 몇 십년 간 이어져 온 전통인 백만 프로그래밍 랭기쥐의 기본, "Hello World!!"를 비켜갈 수 있겠습니까?. :-)


프로젝트 생성 옵션 메뉴에서는 이와 함께 회사 식별자와 Class Prefix, Device Family 그리고 몇 가지 추가 옵션들이 제공됩니다.
그 중 Company Identifier 항목은 제작하려는 애플리케이션의 제작사 명 정도로 생각하시면 됩니다. 추후 앱스토어에 앱이 등록되게 되면 이 명칭을 기준으로 제작사 분류가 가능할 것입니다. (만일, 미리 생각해 둔 명이 없으시다면 그냥 본인의 영문이름 정도를 기입해도 좋을 것입니다.)
다음 항목으로 있는 Class Prefix 항목은 애플리케이션 제작에 있어서 꽤 중요한 결정 부분이라고 할 수 있습니다. 왜냐하면 여기서 결정된 클래스 접두사는 향후 여러분이 아 프로젝트 내에서 만들 모든 클래스의 접두어로 적용되기 때문입니다.
예를 들어, Xcode는 클래스를 신규로 생성할 때 항상 Application Delegate Class를 자동으로 생성해 주는데요, 이 과정에서 Class Prefix 명이 적용되어서 "Prefix명AppDelegate" 라는 형식의 이름을 가진 Delegate Class를 만들어 주게 됩니다. 따라서, 여러분이 Product명으로 지정한 명칭에 의해 기본 정의된 HelloWorld를 그대로 쓰신다면 이 Delegate Class의 이름은 "HelloWorldAppDelegate"라는 이름이 될 것이며, Prefix를 별도의 명칭으로 바꾸게 되면(ex. Haha) 그 이름은 "HahaAppDelegate"라는 식으로 바뀌게 되는 것입니다.

다음으로는 Device Family항목이 되겠는데요,
이 항목은 그냥 "iPhone"인 상태로 두는 것이 현재로써는 정신건강 상 좋습니다.
물론, 여러분들 중 호기심이 조금이라도 있는 분들이라면 선택항목을 눌러보실 텐데요,



궂이 눌러보면, 요렇게 생긴 선택목록이 나타납니다.
iPad 항목은 당연하게도 iPad용의 앱을 만들겠다라는 의미일 것이며, iPhone은 당연히 Phone전용의 것을 의미할 것입니다. 그런데 "Universal"은 무엇일까요?
저도 당연하게도 처음에는 "Universal"을 자랑스럽게 선택하고 다음 단계로 진행했었습니다. 그런데, 막상 프로젝트가 열리자마자 급 후회를 하고 프로젝트 삭제 후 다시 생성하는 수고를 마다하지 않았습니다;;
Universal을 선택하면 당연히 Xcode에서 빌드 시점에 폰과 패드용의 UI를 자동 생성해줄 것이다라고 생각했었는데요, 나중에 알고보니 제 생각과는 다르게 그냥 한 프로젝트에서 폰용의 코딩과 패드용의 코딩을 한꺼번에 관리한다~ 정도의 의미이더라 이겁니다. -_-;;

심지어는 Xcode4에서 신규로 도입된 스토리보드 작업도 폰용과 패드용이 따로따로~;; 결국에는 진도는 못나가고 이중작업의 고충만 존재하기에 과감히 프로젝트를 삭제하고 가쁜히 폰만 선택하고 진행했더라는 후일담입니다.;;;
(그럼 패드만 선택하면 어떠냐고요? 튜토리얼이 폰용인데 패드용 선택하셔서 어쩌시려고요?? ㅎ)

다음 옵션인 StoryBoard와 Automatic Reference Counting(ARC) 옵션은 Xcode4에서 신규로 추가된 옵션들인데요,

그 중 StoryBoard는 UI 디자인을 위해 현재까지 아직 시중에 판매되고 있는 구버전의 Xcode를 기반으로 한 iPhone 개발 관련 서적들에서 흔히들 언급되고 있는 닙파일(xib 파일)을 IB(Interface Builder) 상에서 디자인하는 과정이 새 버전의 Xcode에서는 StoryBoard라는 이름으로 바뀌었다고 생각하면 쉽겠습니다.
기존에는 프로젝트 생성 후 리소스 탐색기에서 닙파일을 열면  Interface Builder라고 하는 UI 디자인 툴(물론, Xcode의 일부분이지만 별도의 인터페이스로 실행이 되었다!)이 실행되면서 UI 구성에 필요한 각종 컴퍼넌트 라이브러리가 나타났었는데 Xcode4에서는 Interface Builder가 톱합 UI로 수용되면서 닙파일 또한 별도의 파일 확장자로 구분이되어 있는 것이 아니라 스토리보드라는 기능을 통해 이를 구현하도록 구성이 바뀌어 있습니다. (좀 더 자세한 스토리보드에 대한 내용은 나중에 쓰게되는 시점이 되면 다시 언급해보도록 하겠습니다.)

다음 항목은 Automatic Reference Counting이라고 하는, 역시 Xcode4 에서 신규로 추가된 기능에 대한 옵션입니다.
이 Automatic Reference Counting라는 기능은 통상 줄여서 ARC라고 이야기들을 하는데요, 기존까지의 iOS앱 개발 과정에서 가장 귀찮긴 하지만 소홀히 했다가는 메모리 누수 등의 문제에 치명적인 엄청나게 중요한 부분이라고 할 수 있는 메모리 할당/회수와 관련한 부분을 자동으로 처리해 주는 획기적인 기능이라고 할 수 있는데요, 이 또한 나중에 다시 자세히 언급하는 시간을 갖기로 하고 지금으로써는 일단 넘어가도록 하겠습니다.

프로젝트 하나 만드는데 잡다한 말들이 너무 많았습니다. ^^;
이제 다음 버튼을 눌러 실제 프로젝트를 생성해 보도록 하시죠. (중간에 프로젝트를 어디에 저장할 지에 대한 위치 선택 팝업이 한 단계 더 있습니다.)


프로젝트가 생성되고 나면, 위와 같은 화면을 보실 수가 있으실 텐데요, 이제 겨우 프로젝트 생성까지 마쳤지만 우리는 여기서 과감하게 "Run" 버튼을 눌러 프로젝트 빌드와 실행을 수행해보도록 하겠습니다. 흐흐흐~

여기서 잠깐!> 
빌드 버튼을 누르기에 앞서, 상단의 Stop 버튼 우측에 있는 스키마 선택 팝업 메뉴가 "HelloWorld > iPhone 5.0 Simulator"로 선택되어 있는지 확인합니다.


빌드 버튼을 누르고 나면,
일련의 메세지들과 함께 빌드 성공의 알림과 함께 시뮬레이터가 실행될 것입니다.



빌드가 완료되고 나면(빌드가 성공했다는 표시가 나타나면서) 곧바로 아이폰 모양의 시뮬레이터가 구동되는 것이 보이고 화면 상단의 메뉴 상으로는 "iOS Simulator"라는 이름이 새로운 툴이 실행된 것을 볼 수 있을 것입니다.
그런데 팝업되어 나타난 시뮬레이터 화면은 그저 하얀 바탕에 아이폰 모양만을 가지고 있을 뿐인데요, 이는 당연하게도 앞서 우리가 행한 것이라고는 그저 프로젝트를 만들고 곧바로 빌드 명령을 수행했기 때문일 것입니다.
그래도 어쨋든 코딩 한줄 없이 아이폰 어플 작성 성공!! ㅎ


다음 시간에는, 이번 시간에 진행해 본 과정을 되짚어보면서 이론적으로 필요한 부분들이 무엇인지 살펴보도록 하겠습니다.
(아무리, 편해진 세상이라고 하더라도 기본적으로 알 건 알아야겠죠? ㅎ)



To be continued~



P.S.
 시뮬레이터는 Xcode와는 별도로 실행되는 툴입니다.
따라서, 시뮬레이터에서 빠져나가려면 상단 메뉴에서 "Quit iOS Simulator" 메뉴를 선택하거나 Command+Q 단축키를 통해 종료할 수 있습니다. 만일, 상단의 메뉴에 "Quit iOS Simulator" 메뉴가 없다면 현재 시뮬레이터가 활성상태로 선택된 것이 아니니 하단의 런처 목록 중에서 Xcode아이콘에 망치가 아니라 아이폰이 표시되어 있는 아이콘을 찾아 선택한 후, 종료 절차를 진행하기 바랍니다.

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by raccoon

트랙백 주소 :: http://raccoon73.tistory.com/trackback/70 관련글 쓰기

댓글을 달아 주세요

  1. Kelvin 2011/11/10 16:25  댓글주소  수정/삭제  댓글쓰기

    좋은글 잘 보고갑니다. 저도 요 근래 앱 개발에 관심이 많이 생겼습니다.
    꿈은 무한한데, 정작 아는바가 하나도 없어 웹서핑중 저에게 주옥같은 님의 글을 이렇게 보고 갑니다.
    다음 글 기대하겠습니다.
    감사합니다.

  2. 창조의손 2011/12/08 18:20  댓글주소  수정/삭제  댓글쓰기

    이번에 처음 시작하는 입장에서 정말 설멸도 잘해노셨네요
    지속적으로 업데이트 해주시면 정말 좋겠지만 바쁘신지 ㅠㅠ 더이상은 없군요
    막막한 초보를 위해 조금더 강의해주세요~

    • raccoon 2011/12/24 11:40  댓글주소  수정/삭제

      회사에서 요즘 신규 프로젝트를 진행하다보니 요즘 통 집에서는 잠만 작게 되서 진행을 못하고 있습니다.
      여유가 생기는대로 최대한 빠른 시간 내에 진도 나가보도록 하겠습니다. ㅜ.ㅜ