상세 컨텐츠

본문 제목

[J2ME 기초] 01. 간단한 소개글..

프로그래밍/Mobile

by 라제폰 2008. 12. 13. 18:53

본문

우선 본 강좌는 JAVA를 어느정도 알고 계시는 분들을 위한 강좌입니다.

JAVA를 전혀 모르고는 아마 이해하기 힘들듯 하오니

J2SE의 작은 입문서 하나정도는 이해를 하시고 보셔야 함을 미리 알립니다..^^



자..wml, MHTML과 같은 모바일 페이지 마크업 언어강좌에 이어

드디어 모바일 어플리케이션을 위한 MobileJava강좌로 넘어왔네요..

이 강좌는 저도 막 공부하면서 쓰는것이라 부족한 부분이 많을 것이고

업데이트도 늦으리라 생각되지만..

여러분들과 같이 공부하며 서로 발전하는 기회가 되길 바라며 이렇게 강좌를 시작합니다.



요즘, 티비에서 멀티팩이니 머니 광고 많이 때리지요? 이것들이 다 무어냐..-_-;;

얼마전까지는 무선인터넷이 wml, mHTML과 같은 모바일마크업언어에

asp와 같은 언어가 합쳐져 서비스되는 컨텐츠 방식이 주루였습니다.



하지만 핸드폰이 발전하면서 요즘에는 핸드폰에 VM이라는 것이 탑재되서 나옵니다. VM이 무엇이냐..

우리가 자바로 만들어진 어플릿이 익스플로러의 JVM이라는 자바버츄얼머신에서 구동이 되는거 아시죠?

이러한 프로그램의 실행기반이 바로 VM입니다.

VM에도 여러 종류가 있는데 예를들어 그 중 KVM은 모바일자바로 만들어진 어플릿이 핸드폰상에도 돌아가기 위한 가상머신입니다.



이렇게 바뀌면 서비스가 어떤 방식으로 바뀌느냐..

무선인터넷상에 게임이 있다면 기존에 게임을 할때마다 접속을 해야했던과는 달리

자바로 만들어진 게임프로그램을 다운받아서 헨드폰에 설치하고 나면

그 후에는 접속하지 않고 바로 실행을 해서 게임을 즐길 수 있게 되는 것이지요.

(마치 컴퓨터로 인터넷에서 게임받아 설치하는 것과 같지요..얼마나 좋습니까~)



얼마전 뉴스를 보니 SK-VM(011핸드폰에 탑재된 자바가상머쉰의 일종이라고 생각하세요)이 탑재된

핸드폰의 판매대수가 130만대를 넘어섰다고 하더군요.

지금 나오는 핸드폰들은 거의가 이러한 가상머신이 탑재되 있기때문에 조금만 지나면

모두가 이런 핸드폰을 가지고 다니리라 생각됩니다.

그렇다면 이러한 어플리케이션 개발이 중요한 기술중 하나가 될 것은 말할 것도 없겠지요..



현재 우리나라에는 크게 SK(011,017), KTF(016,018), LG(019)로 나누어져 있습니다.

이중 KTF는 자바가 아닌 퀄컴사의 브루라는 환경을 제공합니다.

이는 C++기반으로 C++언어로 어플리케이션을 개발하게 됩니다.



SK는 SK-VM이라는 자바기반의 VM과 C기반의 GVM을 탑재한 두가지 핸드폰이 공존하고 있습니다

현재 시장이 가장 큰 VM은 GVM입니다. 배우기 정말 쉽고 간단한 VM이지만

제약이 많고 허접한 부분도 많아 욕도 많이 먹고 있는 버츄얼머신이기도 합니다..-_-

(GVM은 맘잡으면 2-3일이면 대충 다 공부할수 있을듯..-_-;; 그래서 우린 더 복잡하지만 더 재밌는 자바공부를!)



자바기반의 VM은 SK에서는 SK-VM, LG에서는 EZ-Java라는 것을 제공합니다.

SK-VM은 MIDP를 기반으로 구현한 것으로

MIDP와 완전히 호환하며 이에 자체 개발한 SKT-SERVICE API라는 것이 탑재된

SK가 독립적으로 구현한 자바 플랫폼입니다. 물론 MIDP로 작성된 것은 동일하게 작동하구요.

EZ-JAVA도 역시 CLDC/MIDP기반으로 MMPP라는 API가 추가된 형태입니다.



자, 이제 그럼 J2ME가 무엇인가..바로 JAVA 2 MICRO EDITON의 약자입니다.

MICRO만 보고도 대충 짐작이 가지요.. 자바 언어중에서도

컴퓨터 보다 소형기기를 위한 프로그래밍 언어입니다.



J2ME에는 2개의 CONFIGURATION이 있습니다.

CONFIGURATION은 해당디바이스의 최소한의 환경 및 조건등을 정의한 것으로..(간단하게 환경-_-)

J2SE에서 상속받은 클래스에 일부 모바일을 위한 특별한 클래스가 합쳐져 구성되어 있습니다.

그래서, 이 CONFIGURATION 위에 PROFILE이 올라가서 수행이 되는 것입니다.

PROFILE은 프로그래밍 인터페이스..즉, 상세 API를 말하는 것이구요.



아무튼 J2ME에는 CDC와 CLDC 이렇게 2개의 CONFIGURATION이 있습니다.

CDC는 32비트이상의 CPU를 가지고 있는 것으로 인터넷TV, 인터넷폰등이 있으며

성능이 거의 일반 PC 수준에 육박하는 것들을 가르킵니다.

가상머신은 CLDC에 비해 고사양의 장치들을 위해 설계된 CVM이라는 것을 사용합니다.



CLDC는 작은 메모리와 CPU를 사용하는 것으로 핸드폰, PDA등이 이에 속하며

가상머신으로는 JVM과 다른 KVM이라는 것을 사용합니다.

CLDC기반의 PROFILE은 MIDP(Mobile Information Device Profile)입니다.



그럼 제가 이 강좌에 올려 같이 공부할 것은.? 당연히 CLDC기반의 MIDP가 되겠지요?



그럼 CLDC와 MIDP의 특징에 대해 간단히 살펴보겠습니다.

자세한 것은 다른 문서들을 참고해보세요..이런것은 자세하게 나온 곳이 워낙 많아서..^^;;



우선 CLDC DEVICE의 특징입니다.

- 160-512KB의 메모리 여유 공간

- 128KB의 비휘발성 메모리 : Java Virtual Machine + CLDC libraries

- 최소 32KB 이상의 휘발성 메모리 : Java runtime + Object memory

- 16-32비트 프로세서

- 저전력 소모, 주로 배터리 사용

- 네트웍 연결성 : 제한된 대역폭(9600 bps 이하)



다음은 CLDC의 특징입니다.

1. 모래상자 보안모델을 가진다.

2. 부동소수점, finalize() 메소드등은 지원하지 않는다.

3. JNI를 지원하지 않는다.

4. 스레드그룹, 데몬스레드를 사용하지 못한다.

5. 예외처리가 제한적이다.

6. 리플렉션기능을 지원하지 않는다.



이번엔 MIDP DEVICE의 특징입니다.



* 디스플레이



- 화면 크기 : 최소 96*54

- 1-bit 이상 화면 표시

- 가로세로 비율(aspect ratio) 대략 1:1



* 입력



- 한 손, 두 손으로 입력 가능하거나 Touch screen의 입력 메커니즘 메모리

- MIDP 컴포넌트를 위한 128KB의 비휘발성 메모리 공간

- 애플리케이션의 데이터 저장을 위한 8KB의 비휘발성 메모리 공간

- 자바 런타임을 위한 32KB의 휘발성 메모리 공간

- 네트워킹 : 양방향, 무선, 때때로 중단(간헐성), 제한된 대역폭



그리고 MIDP에 사용되어지는 어플리케이션을 MIDlet이라고 부르며

어플릿과 같이 MIDlet은 시작, 중지, 제거하는 메소드를 제공합니다.



MIDlet 종료시에는 MIDlet.notifyDestroyed()을 사용합니다.

java.lang.System.exit()를 사용하면 java.lang.SecurityException이 발생합니다.



헥헥..짧게 알아볼려고 했는데..길어졌네요.

하지만 이것도 매우 짧은것입니다. 개요에 관한 부분은 다른 문서를 많이 참고해보세요

중요하지 않은 듯 하면서 중요한것이 개요와 개념부분이니까요.



다음 강좌에서는 MIDP 구동을 위한 환경 설정을 해보겠습니다.^^

 


관련글 더보기