2009년 7월 21일 화요일

Symbian SDK를 설치하고 살펴볼 사항들

Symbian SDK는 그 자체로 이미 프로그램을 개발할 수 있는 환경을 제공해 준다. 우선 마음이 급한 사람들을 위해 바로 emulator를 띄워보도록 하자.



Emulator는 Series 60 기반의 폰과 유사한 모습을 보여준다. 시스템 구조가 잘 잡혀진 Symbian OS는 커널단까지 Windows 환경에서 돌아갈 수 있도록 하였다. 하드웨어를 가상적으로 연결하는 소프트웨어 레이어와 디바이스 드라이버를 Windows 상에서 돌아갈 수 있도록 작성하였기 때문이다. 이렇기 때문에 Windows 상에서 개발한 소프트웨어를 상당부분 emulator 상에서 검증해 낼 수 있다.



그리고 비록 emulator 상에서는 전화, SMS, MMS 등이 불가능하지만 (관련 플러그인을 구현하여 모뎀과 연결할 수는 있으나 일반적인 이야기로 풀어나가겠다) 통신 플러그인에서 WINSOCK API를 사용하여 인터넷 연결이 가능하도록 해 놓았다. 따라서 public IP로 접근할 수 있는 서버에는 모두 접근이 가능하기 때문에 Naver, Google 등과의 접속도 자유자제로 할 수 있다.



이것이 무엇을 의미하는지 눈치챈 독자가 있는가? 이는 여러분이 만든 서비스 서버와 모바일 클라이언트를 emulator 상에서 충분히 테스트 할 수 있다는 것이다. 가장 손쉽게 접할 수 있는 예는 Webkit widget 기반으로 Naver 및 Google의 Open API를 사용해서 재미있는 프로그램을 개발할 수 있게 된다.

디렉터리 구조를 잠깐 살펴보자.
보통 SDK를 설치하면 다음과 같은 디렉토리가 생길 것이다.



이 안에 들어가 보자.
다른 여타의 디렉터리는 한번씩 들어가 봐서 그 내용을 살펴보기 바란다. 특히 example 디렉터리는 추후에 강좌를 통해 하나씩 다루어 보도록 하겠다.

가장 중요하고 핵심적인 디렉터리는 다음에 위치해 있다.



그렇다 Symbian 커널의 명칭은 epoc이다. 이폭 혹은 에폭이라고도 불린다.
그럼 차례로 집고넘어갈 필요가 있는 디렉터리를 살펴보자.



emulator 개발을 하는데 보다는 target 이미지를 만들거나 sis 파일을 만들 때, 중요한 디렉터리가 된다. Target 환경에 들어가는 리소스 파일 및 Central Repository 파일 등이 모두 여기에 위치하게되기 때문에 emulator를 일차적으로 개발하고 target 테스트를 본격적으로 시작하게 되면 이 디렉터리를 자주 들락거리게 될 것이다.



그래도 에뮬레이터에서 가장 중요하고 필요한 주옥같은 파일이 하나 있으니 이는 바로 다음에 위치해 있다.
c:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\data\epoc.ini
이 파일을 통해서 에뮬레이터에 다양한 설정을 할 수 있음으로 나중에 한번 다루어 보도록 하겠다.

c:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\include\경력있는 개발자라면 직감할 것이다. 바로 해더파일이 위치한 곳이다. 시스템 해더파일은 모두 여기에 모여있으므로 개발할때 당연히 이곳을 system include로 디폴트로 설정해 주어야한다.

c:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\이곳이 여타 다른 개발환경에서 소위말하는 library 디렉터리이다. 그런데 심비안에서는 크게 신경쓸 필요는 없다. 그렇다고 중요하지 않다는 것이아니라 library 디렉터리가 여러곳에 분산되어 있지 않아 이를 관리할 필요가 없다는 뜻이다. Windows용 libraray, dll 파일이 있는 다음을 살펴보자.

c:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\winscw\udeb\
3000개가 넘는 exe 와 dll 들이 기다리고 있을 것이다. 여기가 바로 emulator의 실행 파일들이 모여 있는 곳이다. 이 디렉터리에 “epoc.exe”를 실행시켜 보면 바로 처음에 실행해본 emulator가 동작할 것이다.

c:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\tools\
빌드 스크립트, 및 여러가지 시스템툴이 있다. 나중에 유용한 툴들을 하나씩 살펴보기로 하자.

c:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\winscw\이곳이 말하자면 emulator의 EEPROM 즉 파일 시스템과 같은 곳이다. 보면 c, d, z 가 차례로 있으며 c 는 단말 내장 파일 시스템이며 d는 외장 (MMC) 파일 시스템이다.

자 이제 콘솔하나를 열어 다음의 디렉터리로 가보자.
c:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples\helloworldbasic\group\
그리고 콘솔상에서 가볍게 다음의 순서대로 명령을 실행해보자.



무언가 컴파일되는 느낌을 들으셨다면 당신은 개발자가 맞다. 자 이제 에뮬레이터를 실행해서 “helloworldbasic” 이라는 프로그램을 찾아서 실행해보자.
어디에 있냐구? 여러분이 한번 찾아보길 바란다.

혹시 이전부터 있었던 것이 아니냐구?

그럼 에뮬레이터를 종료하고 이전 디렉터리에가서 다음을 실행해보자.


다시 에뮬레이터를 실행해서 프로그램을 찾아보자

다음 시간까지 c:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples 에 있는 프로그램을 하나씩 실행해 보면서 예제를 통해 어떤 것을 알 수 있는지 확인해 보기 바란다. 부지런한 독자는 HELP 파일을 한번 더 뒤져볼 것이다.