모바일 프로그래밍은 일반 PC에서의 프로그래밍과는 많이 다르다. 모바일 환경에서는 화면 크기, CPU성능, 메모리 공간 등이 PC에 비교하기 거북할 만큼 현저히 떨어지기 때문이다. 그것은 당연한 것이다. 만일 휴대폰을 PC와 같은 스펙으로 만든다면 불티나게 팔려나갈 것이다. 물론 가격이 적당하다는 전제하에서 이다.
모바일 프로그래밍은 희소된 자원을 완벽에 가까울 정도로 정교하게 사용해야 하기 때문에 PC상의 프로그래밍 보다 수월하지 않다. 정교하다는 것은 낭비가 없어야 하고, 적은 양의 메모리를 사용하기 때문에 쓸데없는 코드가 없어야 하며, 알고리즘도 훨씬 고급스러워야 한다는 것이다. 즉, 메모리, 배터리를 이용하는 전원, 키패드를 이용하는 입력, 제한된 폰트와 색상, 작은 화면, 낮은 CPU처리 속도와 그것으로 인한 LCD와 같은 여러 입출력 장치의 딜레이, 제한된 네트워크와 속도, 등을 고려하고 프로그래밍 해야 하는 것이다. PC상에서 처럼 마구잡이식 프로그래밍을 했다가는 휴대폰에 탑재는 고사하고, PC상에서의 에뮬레이터로도 버벅거릴 것이 틀림없다.
다음은 이와 관련한 단말기 최소 권장 사항을 보여준다.
Jlet과 Midlet
Midlet은 MIDP 규격에 따라 작성된 java 언어 응용 프로그램이며, Midlet과 Jlet은 java 언어를 모태로 하기 때문에 혼용 시 문제가 될 수 있다.
아직까지 CLDC(connected Limited Device Configuration)와 MIDP(Mobile Information Device Progile) 그리고 MSF(Mobile Standard Foundation)와 MSP(Mobile Standard Profile)에 대해 상당히 혼란스러울 경우가 있을 것이다.
먼저 CLDC는 제약된 환경에서 디바이스들이 가져야 할 최소한의 요구 사항을 정의한 일종의 스펙이라고 할 수 있으며,
MIDP는 프로파일로서 실제 구현과 확장을 담당한다. 또한 Jlet을 위해 새롭게 정의한 MSF는 CLDC의 역할을 한다고 보면되고, MSP는 MSF 기반의 프로파일이다. 즉 MIDP와 같은 역할을 한다고 보면 된다. 따라서 WIPI2.0에서는 MSF/MSP CLDC/MIDP API 중에 같은 기능을 하는 것들이 중복되어 있으며 구현된 플랫폼에 따라 혼용 시 문제가 될 수 있으므로 플랫폼은 다음에 기술된 사항을 준수하는 수준에서 호환성이 보장되어야 한다.
첫째, 동일한 패키지 이름을 가지는 부분에 대해 플랫폼은 동일한 기능을 제공해야 한다.
둘째, 같은 기능을 가지지만 구현된 내용이 달라서 독립적으로 사용되어야 하는 부분에 대해 플랫폼은 동일 패키지 그룹에 속하는 MSF/MSP와 CLDC/MIDP 패키지(하위 패키지 포함)들을 혼용하지 않고 각기 독립적으로 사용한 경우에는 호환성을 보장해야 한다. 예를들어 org.kwis.msp.lcdui를 사용한 경우 MSF/MSP의 Graphics 패키지를 선택한 것이므로 javax.microedition.midlet과 javax.microedition.lcdui을 사용할 수 없지만 다른 패키지 그룹은 지정하여 사용할 수 있고 이 경우 플랫폼은 호환성을 보장해야 한다. 다시 말해 org.kwis.msp.lcdui, javax.microedition.rms, org.kwis.media, javax.midroedition.io를 동시에 사용하는 것은 동일 패키지 그룹에 속하는 것을 혼용하지 않았으므로 사용이 가능하지만 org.kwis.msp.lcdui, javax.microedition.lcdui, org.kwis.msp.io, javax.microedition.io를 동시에 사용하는 것은 동일 패키지 그룹에 속하는 것을 혼용하였으모로 호환선이 유지되지 않아 사용할 수 없다.
셋째, 기능이 어느 한 프로파일에만 존재하여 타 프로파일의 기능을 불러 사용해야 하는 경우 서로 대응하는 패키지가 없으므로 플랫폼은 상호 참조하여 사용할 수 있도록 호환성을 보장해야 한다.
애플리케이션이 Jlet로 시작하여 MSF/MSP와 CLDC/MIDP를 혼용하여 사용할 경우 플랫폼은 WIPI의 API 보안 정잭을 준수해야 한다. 또는 애플리케이션이 Midlet으로 시작하여 MSF/MSP와 CLDC/MIDP를 혼용하여 사용할 경우 플랫폼은 MIDP의 보안 정책을 준수함과 동시에 WIPI의 API보안 정책과 호환성이 유지되도록 해야 한다.
모바일 프로그래밍은 희소된 자원을 완벽에 가까울 정도로 정교하게 사용해야 하기 때문에 PC상의 프로그래밍 보다 수월하지 않다. 정교하다는 것은 낭비가 없어야 하고, 적은 양의 메모리를 사용하기 때문에 쓸데없는 코드가 없어야 하며, 알고리즘도 훨씬 고급스러워야 한다는 것이다. 즉, 메모리, 배터리를 이용하는 전원, 키패드를 이용하는 입력, 제한된 폰트와 색상, 작은 화면, 낮은 CPU처리 속도와 그것으로 인한 LCD와 같은 여러 입출력 장치의 딜레이, 제한된 네트워크와 속도, 등을 고려하고 프로그래밍 해야 하는 것이다. PC상에서 처럼 마구잡이식 프로그래밍을 했다가는 휴대폰에 탑재는 고사하고, PC상에서의 에뮬레이터로도 버벅거릴 것이 틀림없다.
다음은 이와 관련한 단말기 최소 권장 사항을 보여준다.
디스플레이 | 96 × 54 이상 |
색상 | 4 Gray 또는 256 Color 이상 |
입력장치 | 키패드 |
사운드 장치 | 진동 및 비프음 |
네트워크 | 무선 및 시리얼 |
비휘발성 메모리 | |
플랫폼 라이브러리가 사용할 수 있는 비휘발성 메모리 1M이상 | |
응용 프로그램 관리자 및 기본 응용 프로그램에서 사용할 수 있는 비휘발성 메모리 400KB 이상 | |
응용 프로그램에서 사용할 수 있는 파일 시스템 공간 500KB 이상 | |
휘발성 메모리 | |
응용 프로그램에서 사용할 수 있는 HEAP영역 300KB 이상 | |
플랫폼 라이브러리에서 사용할 수 있는 영역 20KB 이상 |
Jlet과 Midlet
Midlet은 MIDP 규격에 따라 작성된 java 언어 응용 프로그램이며, Midlet과 Jlet은 java 언어를 모태로 하기 때문에 혼용 시 문제가 될 수 있다.
아직까지 CLDC(connected Limited Device Configuration)와 MIDP(Mobile Information Device Progile) 그리고 MSF(Mobile Standard Foundation)와 MSP(Mobile Standard Profile)에 대해 상당히 혼란스러울 경우가 있을 것이다.
먼저 CLDC는 제약된 환경에서 디바이스들이 가져야 할 최소한의 요구 사항을 정의한 일종의 스펙이라고 할 수 있으며,
MIDP는 프로파일로서 실제 구현과 확장을 담당한다. 또한 Jlet을 위해 새롭게 정의한 MSF는 CLDC의 역할을 한다고 보면되고, MSP는 MSF 기반의 프로파일이다. 즉 MIDP와 같은 역할을 한다고 보면 된다. 따라서 WIPI2.0에서는 MSF/MSP CLDC/MIDP API 중에 같은 기능을 하는 것들이 중복되어 있으며 구현된 플랫폼에 따라 혼용 시 문제가 될 수 있으므로 플랫폼은 다음에 기술된 사항을 준수하는 수준에서 호환성이 보장되어야 한다.
첫째, 동일한 패키지 이름을 가지는 부분에 대해 플랫폼은 동일한 기능을 제공해야 한다.
패키지 그룹 | MSF/MSP 패키지 | CLDC/MIDP 패키지 |
IO | java.io | |
Language | java.lang | |
Utility | java.util |
둘째, 같은 기능을 가지지만 구현된 내용이 달라서 독립적으로 사용되어야 하는 부분에 대해 플랫폼은 동일 패키지 그룹에 속하는 MSF/MSP와 CLDC/MIDP 패키지(하위 패키지 포함)들을 혼용하지 않고 각기 독립적으로 사용한 경우에는 호환성을 보장해야 한다. 예를들어 org.kwis.msp.lcdui를 사용한 경우 MSF/MSP의 Graphics 패키지를 선택한 것이므로 javax.microedition.midlet과 javax.microedition.lcdui을 사용할 수 없지만 다른 패키지 그룹은 지정하여 사용할 수 있고 이 경우 플랫폼은 호환성을 보장해야 한다. 다시 말해 org.kwis.msp.lcdui, javax.microedition.rms, org.kwis.media, javax.midroedition.io를 동시에 사용하는 것은 동일 패키지 그룹에 속하는 것을 혼용하지 않았으므로 사용이 가능하지만 org.kwis.msp.lcdui, javax.microedition.lcdui, org.kwis.msp.io, javax.microedition.io를 동시에 사용하는 것은 동일 패키지 그룹에 속하는 것을 혼용하였으모로 호환선이 유지되지 않아 사용할 수 없다.
패키지 그룹 | MSF/MSP 패키지 | CLDC/MIDP 패키지 |
Graphics | org.kwis.msp.lcdui org.kwis.msp.lwc | javax.microedition.midlet javax.microedition.lcdui |
DB | org.kwis.msp.db | javax.microedition.rms |
Media | org.kwis.msp.media | javax.microedition.media javax.microedition.mediacontrol |
High level IO | org.kwis.msp.io | javax.microedition.io |
셋째, 기능이 어느 한 프로파일에만 존재하여 타 프로파일의 기능을 불러 사용해야 하는 경우 서로 대응하는 패키지가 없으므로 플랫폼은 상호 참조하여 사용할 수 있도록 호환성을 보장해야 한다.
패키지 그룹 | MSF/MSP 패키지 | CLDC/MIDP 패키지 |
Low Level IO | org.kwis.msf.io | 없음 |
Kernel | org.kwis.msf.core | 없음 |
Device | org.kwis.msp.handset | 없음 |
Address book | org.kwis.msp.address | 없음 |
애플리케이션이 Jlet로 시작하여 MSF/MSP와 CLDC/MIDP를 혼용하여 사용할 경우 플랫폼은 WIPI의 API 보안 정잭을 준수해야 한다. 또는 애플리케이션이 Midlet으로 시작하여 MSF/MSP와 CLDC/MIDP를 혼용하여 사용할 경우 플랫폼은 MIDP의 보안 정책을 준수함과 동시에 WIPI의 API보안 정책과 호환성이 유지되도록 해야 한다.
'Computer > Jlet' 카테고리의 다른 글
[6] EditPlus Setting for Jlet (0) | 2006.08.03 |
---|---|
[5] Jlet Developer Environment (0) | 2006.08.03 |
[4] Keyworld. (0) | 2006.08.03 |
[2] About Jlet (0) | 2006.08.03 |
[1] About wipi before Jlet (0) | 2006.08.03 |