 |
|
기기 에뮬레이터에 배치하기
eRCP를 쓰면 개발 환경에서 애플리케이션을 완벽히 개발하고 제대로 돌아가는지 테스트할 수 있는 반면 실제 타깃 기기에 배치한다면? 실제 테스트는 별개다. 올바른 타깃 플랫폼과 자바 런타임 라이브러리를 쓰면 구현 상 확실히 명확할 수 있다. 그러나 설계 단계로 되돌릴 수 있을 만큼 중대한 유용성 문제라든지 성능 문제가 발견될지도 모를 일이다. 개발 주기 초기에 실제 타깃 환경에서 코드를 테스트하면 그런 상황을 줄이는 데 도움이 될 것이다.
배치 플랫폼 준비
이미 RCP 기반 애플리케이션으로 이용 가능한 배치 플랫폼(마이크로소프트 윈도, 리눅스, 맥 OS X, 유닉스 변종들 포함)이 풍부한 현 상황에 익숙할 텐데, 최신 eRCP 릴리스가 효율적으로 지원한다는 게 고작 윈도 임베디드 버전 몇 개 정도밖에 안 된다는 걸 보고 다소 실망할 수도 있을 것이다. 또한 초기 릴리스는 노키아의 심비안 OS(S80)만 가능했으나 이마저도 지금은 중단되었는데 노키아 개발자가 최신 S60 플랫폼 지원 작업하기가 바빠서 못하고 있기 때문이다. 이처럼 지원 플랫폼 부족 상황에 대한 표면적 이유, 그리고 급속도로 늘어나는 모바일 시장 전망에 대한 eSWT의 플랫폼 네이티브한 구현 상에 걸림돌이 있는 것은 완벽한 eRCP는 CDC/FP(Connected Device Configration/Foundation Profile)를 지원할 수 있는 JVM을 필요로 하기 때문이다. 오늘날 모바일 기기 대다수는 CLDC/MIDP(COnnected Limited Device Configuration/Mobile Information Device Profile)를 지원한다.
배치 플랫폼으로 사용할 윈CE V5.0 프로페셔널 기반 기기를 가지고 있지 않다면 윈도 모바일 2003/5/6 버전을 다운로드하여 분리된 디렉터리에 압축을 풀어야 한다. 전에 다운로드한 윈도 데스크톱 버전과는 따로 분리해두어야 한다.
마지막으로 호환되는 JVM이 있어야 한다. 기기에 이미 하나 설치되어 있다면 Foundation Profile V1.0 이상을 지원하는지 확인해야 한다. 그렇지 않다면 IBM WebSphere Everyplace Micro Environment for Windows Mobile 1 카피를 구매해 둘 수도 있다(ARM 기반 기기용 IBM J9 VM이 딸려 있다. 참고자료 참조).
윈도 모바일 에뮬레이터
이미 사용할 호환 기기를 가지고 있다면 다음 절은 넘어가도 좋다. 아직 가지고 있지 않다고 해서 달려 나가서 하나 사들고 올 필요는 없다. 지금 당장 괜찮은 대안은 소프트웨어 에뮬레이터를 쓰는 것이다. 소프트웨어 에뮬레이터란 프로그램으로, 개발 머신에서 직접 구동되는 모바일 폰 환경을 에뮬레이트하는 프로그램이라고 할 수 있다. 이를 써보려면 윈도 모바일 5/6를 구동하는 포켓 PC를 에뮬레이트하는 마이크로스프트 디바이스 에뮬레이터 무료 배포본을 다운로드해 써볼 수 있다(참고자료 참조). 이 소프트웨어는 원래 마이크로소프트 비주얼 스튜디오(Visual Studio®)와 함께 동작하도록 설계되었긴 하지만 독립된 버전으로도 이용 가능하다.
에뮬레이터를 다운로드하여 설치한 후 Pocket PC -Coldboot와 같은 미리 정의된 설정을 이용하여 시작할 수 있다. 이 옵션을 이용하면 최초로 전원을 켠 포켓 PC 기기를 에뮬레이트해준다. 에뮬레이터 설정을 수정할 수 있으나 기본 설정만으로도 이번 튜토리얼에는 딱 좋다. 에뮬레이터를 끌 때 설정을 저장할 기회가 있을 텐데 이 때 저장하면 다음 번 세션 시 저장값을 복원할 수 있다.
에뮬레이션에 추가하여 디바이스 에뮬레이터 매니저(그림 14 참조)도 시작해야 한다. 이 애플리케이션은 에뮬레이터의 구동을 추적하며 물리적인 기기인 것처럼 에뮬레이터들을 제어할 수 있도록 한다. 예를 들어 에뮬레이트되는 기기들을 "크래들"에 놓을 수도 있는데 이렇게 하면 PC와 동기화할 수도 있다. 이러한 특이한 기능은 다음 절에서 꽤 유용함을 알 것이다.
그림 14. 디바이스 에뮬레이터 매니저
기기에 eRCP 설치하기
타깃 기기(또는 기기 에뮬레이터)에 eRCP를 설치하는 것은 플러그인을 기기의 디렉터리에 복사하는 것이다. 가장 쉬운 방법은 마이크로소프트 액티브싱크(ActiveSync)를 사용하는 것으로, 액티브싱크는 기기 지원 소프트웨어의 일부로 포함되어 있다(에뮬레이터와 함께 사용하기 위해 무료로 다운로드할 수도 있다).
최초로 기기를 "크래들"한 후 동기화 프로파일을 설정하라는 프롬프트가 뜰 것이다. 동기화할 필요가 있는 게 아무것도 없을 것이다. 정말로 여러분이 관심있을 옵션은 Tool 메뉴에서 Explore Pocket PC 옵션이다. 이는 포켓 PC의 파일 시스템에서 탐색기 같은 뷰를 제공하는데, 이를 이용하여 기기와 파일을 송수신할 수 있다.
eRCP 디렉터리를 복사하도록 설정하기 전에 안에 있는 파일 몇 개를 수정해야만 할지도 모르겠다. eRCP 디렉터리에는 *.lnk 파일이 몇 개 있는데 이 파일들은 미리 패키징된 eRCP 애플리케이션 몇 개에 대한 바로가기다. 이 파일들은 하드 코딩딘 디렉터리 경로를 담기 때문에 특정한 JVM 설치 디렉터리를 반영하도록 이것들을 업데이트할 필요가 있을 수도 있다. j9foun-eworkbench.lnk 파일은 마지막 절에서 eWorkbench의 론칭에 사용할 것이기 때문에 특히 흥미로운 파일이다. 펑범한 텍스트 편집기(그냥 이클립스 IDE로 드래그해 편집해도 된다)에서 편집하여 Listing 4에서 보인 대로 업데이트하자. 간단히 말해 eRCP 디렉터리에 대한 경로로 \Program Files\eRCP를 사용하고 JVM 경로로 \Program Files\J9을 사용한다(이미 기기 상의 다른 곳에 위치한 호환 JVM을 갖고 있지 않다면).
Listing 4. 수정된 j9fun-eworkbench.lnk
37#"\Program Files\J9\bin\j9w.exe" -jcl:foun11 -cp "\Program Files\eRCP\startup.jar"
org.eclipse.core.launcher.Main -application org.eclipse.ercp.eworkbench.eWorkbench
|
아직 JVM을 설치하지 않았다면 \Program Files\J9에 복사하자(bin과 lib 디렉터리를 담고 있는 디렉터리를 복사하고 나서 j9으로 이름을 바꿀 필요가 있다). 기기에 맞는 JVM을 복사해야 하는 것이지, 호스트에서 구동되는 JVM이 아님을 확실히 해두자. 마지막으로 적절한 eRCP 디렉터리를 \Program Files\eRCP로 복사하자. eRCP의 기기 버전을 복사한다는 것을 명심하자. 개발 머신에서 사용하는 버전이 아니다.
애플리케이션 빌드와 패키징
eRCP 기반 애플리케이션을 빌드하고 패키징하는 데 특별하다거나 필요한 건 아무것도 없다. 할 거라곤 이클립스 IDE에서 적당한 익스포트 마법사를 사용하는 것이다. 패키지 탐색기에서 플러그인에서 오른쪽 클릭한 다음 Plug-in Development에서 Export > Select Deployable plug-ins and fragments를 선택한 다음 Next를 클릭한다. 여러분의 플러그인(com.devworks.tutorial.po)이 체크되었는지 확인한 다음 목적 디렉터리를 선택하고 Finish를 클릭한다. 플러그인이 빌드되고 JAR 파일이 패키지된 후 선택된 목적 위치의 플러그인 디렉터리에 위치될 것이다. 마지막으로 익스포트된 플러그인 JAR를 \Program Files\eRCP\plugins 아래의 여러분의 기기로 복사하자.
배치된 애플리케이션 론칭
우리 플러그인은 org.eclipse.ercp.eworkbench.applications 익스텐션 포인트를 구현하므로 새롭게 설치된 개인용 전자 수첩은 eWorkbench를 재시작하면 다음 번엔 이용 가능한 애플리케이션 목록을 보여줄 것이다(j9foun-eworkbench 바로가기 사용). 간단히 목록에서 애플리케이션을 활성화하자. 그러면 친숙한 UI를 볼 것이다.
그림 15. 기기 에뮬레이터에서 동작하는 개인용 전자 수첩
축하한다! eRCP용 개인용 전자 수첩을 성공적으로 배치하였다.
|