맨위로가기

자바 플랫폼, 마이크로 에디션

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

자바 플랫폼, 마이크로 에디션(Java ME)은 피처폰과 임베디드 장치에서 사용하기 위해 설계된 자바 플랫폼의 한 종류이다. 자바 ME는 다양한 장치에 맞게 API를 정의하는 '프로파일'을 통해 기능을 제공하며, 연결 제한 장치 구성(CLDC)과 연결된 장치 구성(CDC)의 두 가지 주요 구성이 존재한다. CLDC는 휴대폰과 같은 제한된 자원을 가진 장치를 위해 설계되었으며, 모바일 정보 장치 프로파일(MIDP)과 같은 프로파일을 포함한다. CDC는 자바 SE의 하위 집합으로, 셋톱 박스와 같은 중간 성능의 장치를 대상으로 한다. Java ME는 자바 SE 환경에서 개발되며, 다양한 개발 도구와 에뮬레이터를 지원한다.

2. 역사

자바 플랫폼, 마이크로 에디션(Java ME)은 노키아의 시리즈 40 모델과 같은 피처폰에서 인기가 많았다. 또한 바다 운영 체제와 네이티브 소프트웨어와 함께 심비안 OS에서도 지원되었다. 윈도우 CE, 윈도우 모바일, 마에모, 미고안드로이드 사용자는 각 환경에 맞는 Java ME를 다운로드할 수 있었다 (안드로이드의 "개념 증명").[4][5]

Java ME는 원래 자바 커뮤니티 프로세스 하에 JSR 68로 개발되었으며, 다양한 버전은 별도의 JSR에서 발전했다. Java ME 장치는 "프로파일"을 구현하는데, 이 중 가장 일반적인 것은 휴대폰과 같은 모바일 장치를 대상으로 하는 모바일 정보 장치 프로파일과 개인 프로파일이다. 개인 프로파일은 셋톱 박스 및 PDA와 같은 소비자 제품 및 임베디드 장치를 대상으로 한다. 프로파일은 "구성"의 하위 집합이며, 현재 연결된 제한 장치 구성 (CLDC) 및 연결된 장치 구성 (CDC) 두 가지가 있다.[6]

2008년에는 Java ME 플랫폼이 JRE 1.3 기능으로 제한되었으며 해당 버전의 클래스 파일 형식(내부적으로 버전 47.0으로 알려짐)을 사용했다.

3. 구성 및 프로파일

자바 ME는 개인용 컴퓨터에서 쉽게 에뮬레이트할 수 있고, (대한민국 바깥에서는) 쉽게 전송할 수 있다는 장점 덕분에 휴대전화 플랫폼에서 인기가 있었다. 이는 닌텐도, 소니, 마이크로소프트사의 게임 플랫폼에서 개발할 때 해당 플랫폼 전용의 비싼 개발용 하드웨어소프트웨어 개발 키트가 필요하다는 점과 비교하면 개발 및 테스트에서 상당한 이점을 제공했다.

자바 ME 장치들은 특정 ''프로파일(profile)''을 구현한다. 널리 사용되는 프로파일로는 휴대기기용 MIDP과 세트톱 박스 등 소비자용 제품을 위한 퍼스널 프로파일이 있다.

프로파일은 ''Configuration''을 기반으로 응용 분야에 맞게 API를 추가한 것이다. 현재는 다음과 같은 두 가지 Configuration이 존재한다.



CLDC는 자바 가상 머신 구동에 필요한 최소한의 자바 클래스 라이브러리로 구성되어 있다. 장치를 자바 ME의 configuration에 맞춰 분류할 때 가장 기본적으로 사용되는 것이 CLDC이다.

Configuration은 특정 자바 ME 환경에서 반드시 지원되어야 하는 기본적인 기능들의 집합을 제공한다. 개발자는 개발하려는 응용 프로그램의 자바 플랫폼에 대한 신뢰할 만한 정보를 프로파일과 CLDC를 통해 얻을 수 있다.

자바 플랫폼, 마이크로 에디션은 노키아의 시리즈 40 모델과 같은 피처폰에서 인기가 많았다. 또한 바다 운영 체제와 네이티브 소프트웨어와 함께 심비안 OS에서도 지원되었다. 윈도우 CE, 윈도우 모바일, 마에모, 미고안드로이드 사용자도 각 환경에 맞는 Java ME를 다운로드할 수 있었다 (안드로이드의 "개념 증명").[4][5]

3. 1. Connected Limited Device Configuration (CLDC)

연결 제한 장치 구성(CLDC)은 자바 가상 머신이 작동하는 데 필요한 최소한의 자바 클래스 라이브러리로 이루어져 있으며, 다양한 장치를 고정된 구성으로 분류하는 데 사용된다.

Configuration은 J2ME 환경의 각 구현에 존재해야 하는 가장 기본적인 라이브러리 및 가상 머신 기능을 제공한다. 개발자는 하나 이상의 프로필과 연결된 제한 장치 구성을 통해 소비자 및 임베디드 장치용 애플리케이션을 만들기 위한 견고한 자바 플랫폼을 확보할 수 있다.

이 구성은 자바 플랫폼에 사용할 수 있는 최소 160KB의 ROM과 32KB의 RAM을 갖춘 총 160KB에서 512KB의 메모리를 가진 장치용으로 설계되었다.[6]

Connected Limited Device Configuration는 휴대 전화와 같이 성능이 낮은 CPU를 대상으로 한다. Java VM에서 새롭게 KVM(킬로바이트 가상 머신, Kilobyte Virtual Machine)을 개발하여, Java SE와 일부 호환되지 않지만 최소한의 기능으로 동작하도록 하였다.

3. 1. 1. Mobile Information Device Profile (MIDP)

자바 ME 장치들은 특정 ''프로파일(profile)''을 구현하는데, MIDP(Mobile Information Device Profile)이라는 휴대기기용 플랫폼이 일반적으로 널리 사용된다.[6]

모바일 정보 기기 프로파일은 휴대폰용으로 설계되었으며, GUI, 데이터 저장 API를 포함하고, MIDP 2.0에는 기본적인 2D 게임 API가 포함되어 있다. 이 프로파일을 위해 작성된 애플리케이션은 MIDlet이라고 한다.

휴대 전화에서 가장 널리 보급된 프로파일로, 최신 사양은 ''JSR 271: Mobile Information Device Profile 3''이며, 3세대 Mobile Information Device Profile (MIDP3)이다. MIDP3에서는 전반적인 기능 확장 외에도 장치 간 상호 연결성도 확장되었고, MIDP2와의 하위 호환성도 유지된다.

MIDP 위에서 작동하는 고수준 UI 라이브러리로 Lightweight User Interface Toolkit(LWUIT)도 제공된다.

3. 1. 2. Information Module Profile (IMP)

정보 모듈 프로파일(IMP)은 자판기, 산업용 임베디드 애플리케이션, 보안 시스템 등 단순하거나 디스플레이가 없거나 제한적인 네트워크 연결을 가진 임베디드, "헤드리스" 장치를 위한 프로파일이다.[6]

원래 지멘스 모바일과 노키아가 JSR-195로 도입한 IMP 1.0은 MIDP 1.0의 엄격한 하위 집합으로, 사용자 인터페이스 API를 포함하지 않는다. 즉, Java 패키지 `javax.microedition.lcdui`에 대한 지원을 포함하지 않는다. JSR-228 (IMP-NG)는 MIDP 2.0을 기반으로 하는 IMP의 차세대 기술로, MIDP 2.0의 새로운 보안 및 네트워킹 유형과 API, `PushRegistry` 및 `platformRequest()`와 같은 다른 API를 활용하지만, UI API나 게임 API는 포함하지 않는다.[6]

3. 1. 3. DoJa 프로파일, Star 프로파일

NTT 도코모사의 휴대 전화에서 실행되는 Java 애플리케이션을 위한 프로파일은 DoJa 프로파일이다.

3. 2. Connected Device Configuration (CDC)

연결된 장치 구성(Connected Device Configuration, CDC)은 자바 SE의 부분 집합으로, GUI 관련 라이브러리를 제외한 거의 모든 라이브러리를 포함하고 있으며, CLDC보다 풍부하다. 자동차 내비게이션 시스템이나 셋톱 박스 등 중간 정도 성능의 CPU를 가진 장치를 대상으로 한다.

커넥티드 디바이스 컨피겨레이션(CDC)
대상 장치자동차 내비게이션 시스템, 셋톱 박스 등
CPU 성능중간 정도
특징자바 SE의 부분 집합 (GUI 관련 제외), CLDC보다 풍부한 라이브러리


3. 2. 1. Foundation Profile

Foundation Profile은 자바 ME(Java ME) 커넥티드 디바이스 컨피겨레이션(Connected Device Configuration, CDC) 프로파일이다.

이 프로파일은 자바 가상 머신의 전체 구현이 필요하고, 전체 자바 플랫폼, 스탠다드 에디션 API를 포함하는 장치에서 사용하도록 설계되었다. 일반적인 구현은 지원되는 추가 프로파일에 따라 해당 API 집합의 일부 하위 집합을 사용한다.

이 사양은 자바 커뮤니티 프로세스(Java Community Process)에서 개발되었다.

3. 2. 2. Personal Basis Profile

Personal Basis Profile은 AWT의 부분 집합 형태로 가벼운 GUI 지원을 포함하도록 Foundation Profile을 확장한 것이다. 이는 BD-J가 구축된 플랫폼이다.[1]

3. 2. 3. Personal Profile

자바 ME 장치들은 특정 ''프로파일(profile)''을 구현한다. MIDP(Mobile Information Device Profile)이라는 휴대기기용 플랫폼과 세트톱 박스 등의 소비자용 제품을 위한 퍼스널 프로파일이라는 플랫폼이 일반적으로 널리 사용된다.

프로파일은 ''Configuration''을 기반으로 응용 분야에 맞게 API를 추가한 것이다. 현재는 CLDC(Connected Limited Device Configuration)과 CDC(Connected Device Configuration)의 두 개의 Configuration이 존재한다. Personal Profile은 Personal Basis Profile을 더욱 확장한 것으로, 보다 완벽한 AWT의 서브세트와 자바 애플릿 지원이 포함되어 있다.

4. 개발 방법

자바 ME는 개인용 컴퓨터에서 쉽게 에뮬레이트할 수 있고, (대한민국 바깥에서는) 쉽게 전송할 수 있다는 이점이 있다. 이는 닌텐도, 소니, 마이크로소프트사의 게임 플랫폼들에서 개발할 때 해당 플랫폼 전용의 비싼 개발용 하드웨어소프트웨어 등의 개발 키트가 필요하다는 점에 비하면 상대적으로 개발 및 테스트 등에서 상당한 장점으로 작용했다.[7]

자바 ME 장치들은 특정 ''프로파일(profile)''을 구현한다. 휴대기기용 MIDP(Mobile Information Device Profile)과 세트톱 박스 등의 소비자용 제품을 위한 퍼스널 프로파일이 널리 사용된다. 프로파일은 ''Configuration''을 기반으로 응용 분야에 맞게 API를 추가한 것이다. 현재 CLDC(Connected Limited Device Configuration)과 CDC(Connected Device Configuration)의 두 가지 Configuration이 존재한다.

MicroEmulator 스크린샷


오라클은 MIDP 및 CDC에 대한 사양, 일부 구성 및 프로필의 참조 구현을 제공하며, Java ME 3.0 SDK부터 NetBeans 기반 IDE가 단일 IDE에서 이를 지원했다. Sun은 Java ME 대상 플랫폼에 대한 바이너리를 제공하지 않고 타사에 자체적으로 제공하도록 했다. 예외는 Palm OS용 MIDP 1.0 JRE(JVM)였다.[8] Sun은 마이크로소프트 윈도우 모바일(Pocket PC) 기반 장치용 J2ME JRE를 제공하지 않았다.[9] 타사 구현은 윈도우 모바일 벤더에서 널리 사용된다. Sun은 phoneME라는 이름으로 참조 구현을 출시했으나 현재는 버려진 상태이다.

Java ME를 타겟으로 하는 운영 체제는 도코모에서 DoJa 형태로 구현되었으며, SavaJe에서 SavaJe OS로 구현되었다. SavaJe는 2007년 4월 Sun에 인수되었으며, Sun의 JavaFX Mobile의 기반을 형성한다. 오픈 소스 Mika VM은 Java ME CDC/FP를 구현하는 것을 목표로 하지만, 공식 인증을 받지는 못했다. Linux 기반 Android 운영 체제는 Java ME와 의도는 비슷하지만 여러 면에서 매우 다른 독점 버전의 Java를 사용한다.[9]

자바 SE(Java SE) 상에서 마이크로 에디션용 개발 도구를 조합하여 개발을 진행하며, API도 필요한 것만 구현한다.

4. 1. 개발 도구 예시


  • 오라클사의 [https://www.oracle.com/java/technologies/sun-java-wireless-toolkit.html Sun Java Wireless Toolkit] (WTK): 과거 Sun Microsystems에서 제공하고 나중에 Oracle에서 제공한 자바 ME 에뮬레이터이다.
  • MicroEmulator: 오픈 소스 자바 ME 에뮬레이터이다.
  • Java ME SDK
  • 썬 원 스튜디오 4 모바일 에디션
  • [http://www.s-cradle.com/products/sophiacompress_java/index.html SophiaCompress(Java)]]: JAR 형식의 Java ME 애플리케이션 크기를 경량화하는 Java 앱 압축 도구이다.
  • 넷빈즈 IDE 개발 환경: 60MB 정도의 본체를 설치한 후, netbeans_mobility를 설치하여 개발 환경을 구축한다.


노키아, 소니 에릭슨, Siemens Mobile 등 휴대폰 제조업체에서 개발 키트의 일부로 제공하는 에뮬레이터도 있다.

5. JSR (Java Specification Requests)

자바 커뮤니티 프로세스 하에 JSR 68로 개발된 Java ME는 다양한 버전이 별도의 JSR에서 발전했다.[6] Java ME 장치는 "프로파일"을 구현하는데, 가장 일반적인 것은 휴대폰을 위한 모바일 정보 장치 프로파일(MIDP)과 셋톱 박스 및 PDA와 같은 소비자 제품 및 임베디드 장치를 위한 개인 프로파일이다. 프로파일은 "구성"의 하위 집합이며, 현재 두 가지가 있다: 연결된 제한 장치 구성(CLDC) 및 연결된 장치 구성(CDC).[6]

2008년에는 Java ME 플랫폼이 JRE 1.3 기능으로 제한되었으며 해당 버전의 클래스 파일 형식(내부적으로 버전 47.0)을 사용했다.

5. 1. 기초

JSR 번호명칭설명
[http://www.jcp.org/en/jsr/detail?id=68 68]J2ME 플랫폼 사양
[http://www.jcp.org/en/jsr/detail?id=30 30]CLDC 1.x
[http://www.jcp.org/en/jsr/detail?id=37 37]MIDP 1.0
[http://www.jcp.org/en/jsr/detail?id=118 118]MIDP 2.x
[http://www.jcp.org/en/jsr/detail?id=139 139]CLDC 1.1
[http://www.jcp.org/en/jsr/detail?id=271 271]MIDP 3.0Java ME 3.4 이전 버전만 해당, 모바일 폰의 마지막 사양, Java SE 1.3의 Java 언어 기능
[https://jcp.org/en/jsr/detail?id=360 360]CLDC 8Java ME 8의 신규 기능
[https://jcp.org/en/jsr/detail?id=361 361]MEEP 8
Java ME 임베디드 프로파일 8
Java ME 8의 신규 기능, 사물 인터넷 장치를 위한 Java SE 8의 언어 기능


5. 2. 주요 확장

JSR 번호명칭설명MSA
[http://www.jcp.org/en/jsr/detail?id=75 75]파일 연결 및 PIM API파일 시스템, 연락처, 캘린더, 할 일
[http://www.jcp.org/en/jsr/detail?id=82 82]블루투스블루투스 직렬 포트 통신 및 파일 교환(OBEX)
[http://www.jcp.org/en/jsr/detail?id=120 120]무선 메시징 API(WMA)
[http://www.jcp.org/en/jsr/detail?id=135 135]모바일 미디어 API(MMAPI)오디오, 비디오, 멀티미디어
[http://www.jcp.org/en/jsr/detail?id=172 172]웹 서비스 APIXML 파서 및 RPC
[http://www.jcp.org/en/jsr/detail?id=177 177]보안 및 신뢰 서비스 API(SATSA)APDU, Java Card RMI(JCRMI), 공개 키 기반 구조(PKI) 및 암호화
[http://www.jcp.org/en/jsr/detail?id=179 179]위치 APIGPS 좌표, 주소, 방향 센서, 랜드마크 저장소
[http://www.jcp.org/en/jsr/detail?id=180 180]SIP API
[http://www.jcp.org/en/jsr/detail?id=184 184]모바일 3D 그래픽(M3G)고수준 3D 그래픽
[http://www.jcp.org/en/jsr/detail?id=185 185]무선 산업용 자바 기술(JTWI)일반
[http://www.jcp.org/en/jsr/detail?id=205 205]무선 메시징 API(WMA) 2.0SMS 및 MMS 전송 및 수신
[http://www.jcp.org/en/jsr/detail?id=211 211]콘텐츠 처리기 API(CHAPI)
[http://www.jcp.org/en/jsr/detail?id=226 226]자바 ME용 확장 가능한 2D 벡터 그래픽 API(M2G)SVG Tiny 처리
[http://www.jcp.org/en/jsr/detail?id=228 228]정보 모듈 프로필 차세대(IMP NG)
[http://www.jcp.org/en/jsr/detail?id=229 229]결제 API
[http://www.jcp.org/en/jsr/detail?id=234 234]고급 멀티미디어 보충 기능(AMMS)MMAPI 확장
[http://www.jcp.org/en/jsr/detail?id=238 238]모바일 국제화 API지역화된 리소스, 로캘 날짜 및 숫자 서식, 문자열의 로캘 비교
[http://www.jcp.org/en/jsr/detail?id=239 239]OpenGL ES API용 자바 바인딩
[http://www.jcp.org/en/jsr/detail?id=248 248]모바일 서비스 아키텍처(MSA)
[http://www.jcp.org/en/jsr/detail?id=253 253]모바일 텔레포니 API
[http://www.jcp.org/en/jsr/detail?id=256 256]모바일 센서 API가속도계, 자이로스코프, 나침반, 온도계, 기압계 등에서 값 읽기
[http://www.jcp.org/en/jsr/detail?id=257 257]비접촉 통신 API
[http://www.jcp.org/en/jsr/detail?id=258 258]모바일 사용자 인터페이스 사용자 지정 API
[http://www.jcp.org/en/jsr/detail?id=272 272]핸드헬드 단말기용 모바일 방송 서비스 API
[http://www.jcp.org/en/jsr/detail?id=280 280]자바 ME용 XML API
[http://www.jcp.org/en/jsr/detail?id=281 281]IMS 서비스 API
[http://www.jcp.org/en/jsr/detail?id=287 287]자바 ME용 확장 가능한 2D 벡터 그래픽 API 2.0
[http://www.jcp.org/en/jsr/detail?id=293 293]위치 API 2.0
[http://www.jcp.org/en/jsr/detail?id=298 298]자바 ME용 텔레매틱스 API
[http://www.jcp.org/en/jsr/detail?id=300 300]자바 ME용 DRM API
[http://www.jcp.org/en/jsr/detail?id=325 325]IMS 통신 지원


참조

[1] 웹사이트 Java ME Overview http://www.oracle.co[...] Oracle Corporation 2017-02-26
[2] 웹사이트 Learn about Java Technology https://web.archive.[...] 2024-02-15
[3] 뉴스 Smartphones outsell feature phones (again) for the first time, worldwide https://arstechnica.[...] 2024-03-15
[4] 문서 phoneME for Windows CE, Windows Mobile and Android (development stopped in 2011-06-15) https://web.archive.[...]
[5] 웹사이트 App Runner (development stopped in 2010-05-11) https://web.archive.[...] 2012-08-05
[6] 문서 Java ME Technology http://java.sun.com/[...]
[7] 문서 MIDP for Palm OS 1.0: Developing Java Applications for Palm OS Devices http://developers.su[...] 2002-01-01 # Assuming January for month if not specified.
[8] 문서 CDC and Personal Profile - Open letter to SUN to produce a Personal Java JRE for Pocket PC http://forum.java.su[...] 2003-01-01 # Assuming January for month if not specified.
[9] 문서 Mobile application development: Android compared to J2ME http://kevinboone.ne[...] 2013-02-01 # Assuming February for month if not specified.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com