내 손안 의 아이폰 어 플 개발 : : [ 스크랩 ] Xcode 4 집 중 리뷰 
 XCODE 2011 . 4 . 9 . 11 : 09 
 [ 스크랩 ] Xcode 4 집 중 리뷰 
 새로운 개발 환경 Xcode 4 집 중 리뷰 # 2 
 지난 호에 이 어 Xcode 4 를 활용 해 여러 가지 앱 을 만들 어 보 자 . 외형 적 으로 보 기에 Xcode 4 로 만든 앱 에 특별히 다른 점 은 없 다 . 하지만 개발자 의 입장 에서 보 면 좀 더 편리 한 환경 에서 쾌적 하 게 개발 할 수 있 다는 장점 이 있 다 . 
 안경훈 linuxgood @ gmail . com | 리눅스 와 맥 OS 에 관심 이 많 으며 , 모바일 디바이스 에서 동작 되 는 사용 자 중심 의 프로그램 을 개발 하 는 것 에 흥미 를 가지 고 있 다 . 현재 삼성 SDS 에서 근무 중 이 다 . 
 지난 호 내용 을 기반 으로 이번 에 는 Xcode 4 를 사용 해 실제로 몇 가지 애플리케이션 기능 들 을 작성 해 보 자 . 참고 로 이 글 을 쓰 는 동안 Xcode 4 디벨로 퍼 프리뷰 ( Developer Preview ) 4 버전 이 나왔 다 ( 2010 . 10 . 14 ) . 
 이번 호 에서 Xcode 4 를 사용 해 작성 할 기능 들 은 다음 과 같 다 . 
 - URL 을 입력 해 이미지 가져오 기 
 - switch 버튼 의 활용 ( On / Off 버튼 ) 
 - mp 3 플레이 하 기 ( 프레임워크 의 활용 ) 
 < 화면 1 > Xcode 3 초기 화면 
 < 화면 2 > Xcode 4 초기 화면 
 < 화면 3 > Template 선택 화면 ( Ver 4 ) 
 < 화면 4 > Template 선택 화면 ( Ver 3 ) 
 Xcode 4 버전 은 시작 시 나타나 는 초기 화면 이 < 화면 1 > 과 같이 달라졌 다 . 항목 이 좀 달라진 모습 을 볼 수 있 다 . 
 ‘ Create a new Xcode project ’ 를 선택 해 새로운 프로젝트 를 시작 한다 . 새로운 프로젝트 템플 릿 을 선택 하 는 화면 은 별로 달라진 것 이 없 다 ( 버전 4 는 배경 화면 이 생겼 다는 정도 일 뿐 ) . 
 < 화면 5 > 애플리케이션 정보 입력 
 < 화면 6 > 애플리케이션 정보 저장 
 ‘ View - based Application ’ 템플 릿 을 선택 하 면서 부터 버전 4 의 달라진 점 을 볼 수 있 다 . 버전 3 에서 는 바로 프로젝트 를 저장 하 는 화면 이 보였 지만 버전 4 에서 는 Product Name 이나 Company Identifier 등 버전 3 에서 plist 를 열 어서 작성 해야 했 던 일부 항목 들 을 프로젝트 를 시작 하 기 전 에 입력 할 수 있 다 . 
 또한 Xcode 에서 사용 되 는 소스 컨트롤 을 위한 형상 관리 툴 로 git 를 선택 할 수 있 다 ( https : / / git . wiki . kernel . org / index . php / GitDocumentation 참조 ) . 버전 3 에서 는 Subversion 을 디폴트 로 사용 했었 다 ( 버전 4 에서 도 물론 사용 가능 하 다 ) . 체크 박스 를 선택 하 면 로컬 저 장소 ( repository ) 를 만들 수 있 는 선택 화면 이 나온다 . 
 < 화면 7 > 형상 관리 툴 의 선택 
 최초 화면 은 지난 호 에서 설명 한 것 처럼 버전 3 과 는 많이 다른 모습 이 다 . 더욱 자세 한 설명 은 애플 이 배포 하 는 문서 를 참조 하 자 ( http : / / adcdownload . apple . com / Developer _ Tools / xcode _ 4 _ developer _ preview _ 4 / xcode 4 _ transitionguide . pdf , Apple developer 프로그램 에 가입 해서 로그인 을 해야 볼 수 있 는 문서 다 ) . 
 < 화면 8 > Xcode 에디터 초기 화면 
 일반 적 으로 개발 시 에 는 특정 기능 만 을 자주 사용 하 게 된다 . 버전 4 의 화면 여러 곳 에서 사용 자 가 특정 기능 을 세밀 하 게 설정 할 수 있 는 버튼 들 을 볼 수 있 다 . 사용자 설정 이 가능 한 기능 들 이 너무 많 아서 처음 Xcode 로 개발 을 시작 하 는 개발자 들 은 어려울 수 도 있 을 것 이 다 . 하지만 기능 들 을 살펴보 면 유용 한 것 들 이 매우 많 다 . 
 < 화면 9 > 는 처음 프로젝트 를 시작 할 때 형상 관리 툴 인 git 를 선택 했 기 때문 에 실시간 으로 변경 된 코드 를 비교 할 수 있 도록 보여 주 는 화면 이 다 . 
 < 화면 9 > 소스 코드 비교 화면 
 이제 앞 에서 언급 한 예제 프로그램 들 을 하나 씩 만들 어 보 자 . 
 URL 입력 해 이미지 가져오 기 
 먼저 다음 과 같 은 형태 로 뷰 를 구성 한다 . 버전 4 의 대표 적 인 특징 인 Xcode 에디터 안 으로 들어온 인터페이스 빌더 를 사용 해 만들 수 있 다 . 만약 이전 버전 처럼 IB 를 별도 로 사용 하 려면 소스 트리 에서 xib 파일 의 오른쪽 을 클릭 해 ‘ Open with External Editor ’ 항목 을 선택 하 면 된다 . 
 < 화면 10 > 외부 IB 선택 해 열 기 
 < 화면 11 > 뷰 설정 화면 
 < 리스트 1 > 과 같 은 코드 를 작성 한다 . 
 < 리스트 1 > maso 11 ViewController . h 
 < maso 11 ViewController . h > 
 < connections > 버튼 을 선택 해 헤더 파일 에서 선언 한 각각 의 Outlet 항목 들 과 showkImage 라는 Action 함수 를 연결 한다 . 연결 방법 은 각각 의 항목 을 뷰 화면 의 오브젝트 들 로 드래그 하 면 된다 . 연결 할 때 ‘ File ’ s Owner ’ 라는 아이콘 을 먼저 선택 해 둬야 < 화면 12 > 와 같 은 연결 화면 이 나온다 . 
 < 화면 12 > 파일 Owner 화면 
 < 화면 13 > 각종 아이템 설정 및 연결 
 Action 함수 를 연결 할 때 는 함수 에 적당 한 이벤트 도 작성 해 줘야 한다 . 해당 함수 ( showkImage ) 를 ‘ 드래그 앤 드롭 ’ 하 면 < 화면 14 > 와 같 은 이벤트 선택 창 이 나온다 . 
 < 화면 14 > 이벤트 지정 화면 
 다음 으로 < 리스트 1 > 의 maso 11 ViewController . m 에 < 리스트 2 > 와 같이 코딩 한다 . 
 < 리스트 2 > maso 11 ViewController . m 
 # import " maso 11 ViewController . h " 
 @ implementation maso 11 ViewController 
 실행 해 < View URL Image > 버튼 을 누르 면 < 화면 15 > 와 같 은 화면 을 볼 수 있 다 . 
 < 화면 15 > URL 이미지 보여 주 기 
 switch 버튼 의 활용 ( On / Off 버튼 ) 
 < 화면 15 > 에서 switch 버튼 을 On / Off 한 후 에 버튼 을 터치 할 때 마다 그림 이 보이 거나 보이 지 않 도록 하 려고 할 때 < 리스트 3 > 과 같 은 코드 를 사용 한다 . 
 < 리스트 3 > Switch event 설정 
 < 리스트 3 > 을 실행 하 면 < 화면 16 > 과 같 은 결과 를 볼 수 있 다 . 
 < 화면 16 > Switch Objects 실행 결과 
 MP 3 플레이 하 기 ( 프레임워크 의 활용 ) 
 이번 에 는 Xcode 4 에서 프레임워크 를 불러 와서 활용 하 는 앱 을 작성 해 보 자 . 이 예제 를 위해 MP 3 파일 을 재생 하 는 코드 를 작성 해 보 자 . MP 3 파일 을 플레이 하 기 위해서 는 AVFoundation . framework 를 추가 해야 한다 . Xcode SDK 에 는 여러 가지 기능 을 하 는 라이브러리 형태 의 코드 가 있 는데 , 이것 을 프레임워크 라고 한다 . 버전 3 에서 는 < 화면 17 > 과 같이 프레임워크 를 추가 할 수 있 다 . 
 < 화면 17 > 프레임워크 의 선택 
 버전 3 과 비교 해서 달라진 점 은 프레임워크 를 파인더 에서 드래그 앤 드롭 으로 가져온다는 점 이 다 . 이 를 위해 다음 과 같이 약간 의 팁 이 필요 하 다 . 먼저 프레임워크 디렉 토리 에 있 는 어떤 항목 을 선택 한 후 오른 쪽 클릭 을 선택 해 ‘ Show in Finder ’ 를 선택 한다 . 그 후 < 화면 18 > 과 같이 파인더 창 에서 폴더 자체 를 Xcode 에디터 의 트리 화면 으로 드래그 해 추가 한다 . 
 < 화면 18 > 프레임워크 선택 화면 
 < 화면 19 > Finder 선택 화면 
 < 화면 20 > 과 같이 프레임워크 를 해당 프로젝트 로 복사 할 것 인지 묻 는 화면 이 나온다 . 
 < 화면 20 > MP 3 파일 추가 후 화면 
 추가 된 후 에 는 < 화면 21 > 과 같 은 화면 을 볼 수 있 다 . 이제 MP 3 파일 을 플레이 하 기 위한 프레임워크 를 사용 할 준비 가 된 것 이 다 . 
 < 화면 21 > 프레임워크 선택 화면 
 이 예제 를 위해서 는 MP 3 파일 이 하 나 있 어야 한다 . MP 3 파일 도 프레임워크 를 추가 할 때 처럼 파인더 를 통해 프로젝트 에 넣 으면 된다 . da . mp 3 라는 이름 으로 추가 했 다 . 
 뷰 는 이전 에 사용 한 것 을 그대로 사용 하 고 버튼 에 이벤트 를 재 설정 하 겠 다 . 프레임워크 를 추가 한 후 에 는 다음 과 같이 헤더 파일 을 프로젝트 에 include 하 는 코드 를 작성 해야 한다 . 
 # import < AVFoundation / AVAudioPlayer . h > 
 이후 에 실제로 구현 될 Action 함수 에 < 리스트 4 > 를 추가 한다 . 
 버튼 을 터치 하 는 순간 da . mp 3 가 실행 될 것 이 다 . 
 < 화면 22 > 에디터 에서 해당 항목 을 보여준다 . 
 < 리스트 4 > mp 3 Play 
 Xcode 4 의 리소스 확인 
 버전 4 에서 는 < 화면 22 > 처럼 멀티미디어 리소스 가 포함 됐 을 경우 즉시 확인 할 수 있 도록 간단 한 정보 를 보여준다 . < 화면 22 > 는 MP 3 파일 에 대한 정보 를 보여 주 는 화면 인데 , 실제로 < play > 버튼 을 누르 면 음악 이 연주 된다 . 
 Xcode 4 의 Organizer Devices 항목 
 Organizer 는 아이폰 사용 중 에 발생 한 여러 가지 유용 한 정보 나 사용자 인증서 파일 등 의 정보 를 보여 주 는 프로그램 이 다 . 이 프로그램 에서 개발 시 필요 한 여러 가지 정보 들 을 살펴볼 수 있 는데 , < 화면 22 > 는 아이폰 에 올려진 프로그램 이 실행 되 면서 남긴 로그 를 보여 주 는 화면 이 다 . 
 여기 서 개발자 는 프로그램 이 이유 없이 죽 는 이유 나 해당 파일 의 실행 위치 정보 , 사용 했 던 라이브러리 , 아이폰 OS 버전 , CPU 에 따른 코드 타입 , 실행 된 프로세스 의 개수 등 아이폰 에서 일어났 던 모든 사항 들 을 들여다 볼 수 있 다 . 심지어 메모리 가 부족 해 실행 되 지 못했 던 상황 까지 도 체크 할 수 있 다 . 그리고 아이폰 에서 사용 중 인 애플리케이션 을 아이콘 과 리스트 타입 으로 볼 수 있 으며 , 삽입 ( Add ) 과 삭제 ( Remove ) 도 가능 하 다 . 
 Repositories 항목 
 여기 서 는 형상 관리 도구 인 git 를 사용 해서 개발 중 인 파일 의 변경 정보 등 을 보여 줄 수 있 다 . 
 < 화면 23 > Device 의 각종 정보 취득 화면 
 < 화면 24 > 사용 자 정보 입력 창 
 < 화면 25 > 버전 컨트롤 화면 
 Xcode 4 에서 는 디폴트 형상 관리 툴 로 git 를 사용 한다 . < 화면 24 > 에서 보 는 것 처럼 사용 자 정보 와 개발 중 에 변경 했 던 소스 의 정보 를 보여준다 . 사용자 별 로 설정 이 가능 하 고 로그인 후 사용 이 가능 하 다 . 사용자 이름 을 선택 하 면 사용 자 의 기본 정보 를 변경 할 수 있 는 화면 이 나온다 . 
 Projects 항목 
 프로젝트 자체 에 대한 다양 한 이력 정보 를 보여 주 는 항목 이 다 . 실행 될 때 디렉 토리 위치 나 현재 실행 중 인지 또는 최종 실행 시간 정보 등 을 보여 줄 수 있 다 . 또한 해당 애플리케이션 이 실행 되 면서 만들 어 낸 각종 메타데이터 등 도 확인 할 수 있 다 . 
 < 화면 26 > 사용 자 정보 입력 창 
 Archives 항목 
 애플 앱 스토어 에 올려진 애플리케이션 의 유효 성 여부 를 판별 하 는 항목 이 다 . 권한 이 없 는 앱 을 실행 하 려고 하 면 < 화면 27 > 과 같 은 경고 메시지 가 나온다 . 하 단부 에 실행 가능 한 아이콘 들 이 자리 잡 고 있 는 것 을 볼 수 있 다 . 
 < 화면 27 > 실행 오류 발생 시 화면 
 Documentation 항목 
 각종 라이브러리 문서 들 을 버전 별 로 찾아볼 수 있 도록 인터페이스 를 제공 해 준다 . 
 < 화면 28 > 버전 별 문서 파일 
 < 화면 29 > 실시간 에러 메시지 
 이 번 호 에서 는 Xcode 4 버전 을 실제로 사용 하 는 방법 에 대해 알 아 봤 다 . code sense 가 완벽 하 지 않 은 점 이나 프레임워크 등 을 추가 할 때 불편 한 점 , < 화면 29 > 와 같 은 실행 오류 가 나 는 경우 등 Xcode 4 버전 은 아직 까지 개선 돼야 할 부분 들 이 몇 가지 보인다 . 
 TAG 4 , XCode , [ 스크랩 ] , 집중 리뷰