달력

11

« 2018/11 »

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  


 아이팟 터치 & 아이폰 개발 with 툴체인 아이폰 개발

 아이팟 어플리케이션 개발을 시작하며

 

국내에 아이폰(iPhone)이 들어온다는 소식도 간간히 들려오고, 국내의 아이팟 터치(iPod Touch) 사용자도 늘어나면서 아이팟에 대한 관심이 어느때 보다 높은것 같다. 실제로 아이팟 터치를 해킹(락을 푸는 정도)해서 사용해 보면 그 무한한 가능성에 놀라움을 금치 못하게 된다. 본인도 아이팟 터치를 이리저리 가지고 놀던중 아이팟 터치용 어플리케이션을 만들어보는것이 재미있겠다는 생각이 들던 차에, 이번에 도전을 해보게 되었다. 그러나 이것은 결코 순탄치 않은 길이었다. 그간 겪을 일들을 앞으로 이 카테고리로 정리해 볼까 한다. 언제 귀차니즘으로 관둘지 모르지만 ^^

 

 

 

 

 

 

 가장 기본적으로 알아야 할것들

 

본 글은 기본적인 개발을 해보았고 한두가지 언어를 다룰 줄 알지만, 아이폰이나 맥OS(MacOS)에 대해 전혀 지식이 없다고 가정을 하고 쓰여질 것이다 (왜냐하면 본인이 그렇기 때문이다).  따라서 기본적으로 아이폰 어플리케이션 개발을 위해 알아야 할 지식들도 함께 소개를 할까 한다. 개발자가 아닌 분들도 애플 관련 지식을 쌓는데 도움이 되실 것이고, 개발자 분들도 코딩이 아닌 전반전 지식을 쌓는데 도움이 되셨으면 하는 바이다 (거창하게 말하지만 본인도 잘 모른다;).

 

아이폰용 어플리케이션을 개발 할 수 있는 방법 2가지

(1) 맥 에서 편하게 개발

(2) 툴체인을 통해 크로스컴파일

 

맥을 가지신 분들(정말 부럽다) 이라면 애플에서 공개한 펌웨어(firmware) 2.0 용의 SDK를 이용해 아주 좋은 개발환경을 구성할 수 있다. 그래피컬한 개발환경이나 편리한 템플릿(template)들을 제외 하더라도, 아이폰 에뮬레이터가 제공되어 개발중에 결과를 쉽게 확인할 수 있다는 점은 너무나도 매력적이다. 다만, SDK에서 개발한 아이폰 어플리케이션을 배포하기 위해서는 라이센스를 구입해야 한다는 점(10만원 정도였던걸로 기억한다) 때문에 개발자들의 원성을 사고 있다. 그렇다 하더라도 맥에서 개발한 코드를 크로스컴파일로러 컴파일 해주는 방법을 이용해도 될듯 하기 때문에, 맥을 가지고 개발한다는건 여전히 부러운 방법이다.

 

이 글은 기본적으로 툴체인을 구성하고 개발하는것에 목표를 두고 있고, 사실 툴체인을 통한 개발환경을 구성만 하면(그게 제일 문제지만), 그 후로는 맥에서 개발하는것과 큰 차이는 없으므로 (라고 스스로를 위로하자) 툴체인을 통해 개발해 배포할 수 있는 방법을 소개할 것이다.

 

툴체인이 뭐야?

툴체인(toolchain)은 간단히 말하면 서러운 셋방살이라고 할 수 있다. 위키피디아를 뒤져보면 다 나오는 얘기지만, 다른 플랫폼의 소프트웨어 개발을 위해서 사용되는 개발도구의 집합을 말한다. 이게 왜 셋방살이인가 하면, 컴파일러도 타겟 플랫폼에 맞는걸 써야하고, 라이브러리도 타겟 플랫폼의 것을 사용해야 하고, 컴파일 후에도 타겟 플랫폼에 실행파일을 업로드 해서 테스트를 해야하는 등등 번거로운 것들이 늘 함께 하기 때문이다.

 

그럼 툴체인을 어떻게 구성하는데?

툴체인을 구성하는 방법은 무궁무진 하지만, 기본적으로 크로스 컴파일러(Cross compiler)와 라이브러리들은 필수 요소이다. 아이폰용 개발 툴체인을 구성하는것도 여러 방법이 있지만 쉽게 생각해 볼 수 있는 방법은 리눅스(Linux)에서 개발하여 아이폰으로 테스트 하는방법과, 윈도우에서 이클립스(Eclipse)로 개발하여 Cygwin으로 컴파일 한뒤, 아이폰으로 테스트를 하는 방법등이 있다. 여기서는 이클립스를 이용하여 윈도우 환경에서 개발하는 방법을 추천한다. 즉 코딩(Eclipse)-컴파일(Cygwin gcc-arm cross complier)-테스트(아이팟터치) 의 순서가 될 것이다.

 

Cygwin 과 Cross Compiler

설마 이걸 모를까 싶지만, 의외로 모르는 분들도 많을것이다. Cygwin은 리눅스용 프로그램들을 윈도우용으로 포팅한 것이다. 따라서 Cygwin에서 ls명령을 쳤을때 실행되는건 리눅스에서 실행되는게 아니라 여전히 윈도우 커맨드라인에서 ls명령을 사용하는것과 다를바가 없는 것이다. 하지만 Cygwin은 상당히 잘 만들어 져 있기 때문에 웬만한 리눅스 사용환경을 잘 지원하고 있다.

 

크로스컴파일러는 어플리케이션을 컴파일 해서 머신코드를 생성 할 때, 타겟 머신에서 사용하는 코드를 생성할때 사용한다. 이말이 무슨 뜻인고 하니, 컴파일을 해서 CPU가 이해할 수 있는 어셈코드와 바이트코드(기계어)를 생성 할 때, 내 PC의 Intel CPU가 사용하는 언어로 번역을 하는것이 아니라, 타겟 머신인 아이팟의 ARM CPU가 사용하는 언어로 번역을 한다는 것이다. 따라서 이렇게 크로스컴파일 된 코드는 내 PC에서는 동작하지 않고 아이팟에서 동작 하는 것이다.

 

점심시간이 다가오므로 글을 여기서 마치고, 다음 포스트에서 툴체인 설치법과 이클립스와의 연동법을 써 보고자 한다.



다음글보기http://starplaying.tistory.com/114



Posted by 라면스프