Java의 모든 원천 기술은 Sun Microsystems에서 갖고 있으며 다음과 같이 총 3가지 스펙으로 나누어 집니다.
① J2EE (Java 2 Platform, Enterprise Edition)
② J2SE (java 2 Platform, Standard Edition)
③ J2ME (Java 2 Platform, Micro Edition)
입니다.
그 중에 J2ME는 엔터프라이즈급을 위한 J2EE와, 일반 PC를 위한 J2SE에 바탕을 두고
정의되었으며, 휴대폰이나 PDA 셋톱박스처럼 휴대용의 작은 기기에 적합한, 동적인 네트웍크
기반의 어플리케이션을 개발 할 수 있도록 설계되었습니다.
그러면 이제 J2ME를 세분화 해 보도록 하겠습니다.
J2ME를 세분화 하면 다음과 같이 총 3 가지로 세분화 할 수 있습니다.
① CVM
② KVM
③ Card VM
위와 같이 3가지로 세분화 시켜놓은 것은 VM(Virtual Machine) 에 따라서 구분을 해 놓은 것입니다.
다시 위의 3가지를 자세하게 설명하면 다음과 같습니다.
▣ CVM (Classic Virtual Machine)
CVM은 디지털 셋탑박스, TV등을 위한 컨피규레이션인 CDC(Connected Device Configuration)와 Personal Profile, Foundation Profile, Personal Basis Profile 로 구성됩니다.CVM은 32비트 이상의 프로세서를 가진 디바이스에서 사용됩니다.
즉 CVM 은 밑에서 설명할 KVM을 사용하는 디바이스 보다 덜 제한적인, 즉 조금 더 큰 용량의 디바이스에서 이용될 수 있습니다.
▣ KVM (Kilobyte Virtual Machine)
소형 컴퓨팅 장비들을 위한 J2ME 의 가상 머신입니다. 이 KVM은 휴대폰 이나 PDA , 페이져 등을 위한 컨피규레이션인 CLDC(Connected, Limited Device Configuration)와 MIDP(Mobile Information Device Profile)로 이루어져 있습니다.
▣ Card VM
자바 카드를 위한 VM 입니다.
자 ~ ! 위와 같이 정리를 해 놓고 보니 이제 J2ME 라는 녀석이 한눈에 들어오는 느낌이 드실겁니다. 그러면 이제는 우리가 앞으로 집중적으로 공부를 해야할 KVM에 대해서 조금만 더 알아봅시다.
KVM은 휴대폰을 위한 스펙으로 J2ME를 대표하는 솔루션으로 세계 무선 인터넷 플랫폼 시장에서 그 위치가 확고하다고 볼 수 있습니다. 우리나라에서도 SK 텔레콤과 LG텔레콤을 통해 제공되고 있으며, 또한 우리나라에서 독자적으로 개발한 "대한민국 무선 인터넷 플렛폼 "WIPI" 와도 100 % 호환됩니다.
즉 한번 작성한 J2ME 어플리케이션은 자바를 지원하는 전 세계의 대부분의 폰에서 그대로 작동되는 이점을지니고 있다는 겁니다.
CLDC와 MIDP 에 대한 간단한 설명은 다음과 같습니다
CLDC 는 Connected Limited Device Configuration 의 약자 입니다.
여기서 맨 마지막 단어인 Configuration 은 비슷한 특성을 가지는 디바이스들이 가져야될 최소한의 요구사항에 대한 정의 라고 할 수 있습니다.
즉 J2ME자체가 모바일과 같은 제한된 환경의 디바이스들을 위한 표준 스펙이라고 한다면, 다시 그 J2ME 내부에서도 핸드폰과 같은 아주 극한된 환경을 가지고 있는 디바이스들이 가져야 될 최소한의 요구사항을 정의하는 Configuration을 CDDC 라고 하고, 핸드폰보다는 좀 더 여유로운 환경을 가지고 있는 셋톱박스와 같은 디바이스 내에서 가져야 할 최소한의 요구사항을 정의하는 Configuration을 CDC 라고 합니다.
이제 CLDC를 좀 더 살펴보도록 하겠습니다.
CLDC가 대상으로 하는 디바이스에는 핸드폰 이나 PDA, 양방향페이져 등이 있습니다.
이들은 모두 네트워크에 연결될 수 있고, 극히 제한적인 리소스를 가진 디바이스라는
공통점이 있습니다. 하지만 이러한 공통점 만으로 이들을 하나의 범주로 묶을 수는 없습니다.
예를 들면 핸드폰과 양방향 페이져 등은 디스플레이 창의 크기도 다르며, 사용자의 입력을
처리하는 방법도 천차만별입니다.
즉 공통적인 특성을 가진 디바이스라 할지라도 특정 부분에 대해서는 다른 특성을 가진다는
사실은 어쩔 수 없는 것입니다. 즉 이러한 차이점을 Profile 인 MIDP가 맡게 되는 겁니다.
다시한번 말씀드린다면 Configuration은 최소한의 정의만 하고, 실제 구현이나 확장은
Profiles 에서 담당한다고 할 수 있는 겁니다.