기타 Lobsters · 2026-10-25

방구석 구형 피처폰에 자바 게임·앱 직접 만들어 넣는 법

핵심 요약
  • 스마트폰 이전 2000년대 피처폰에서 쓰이던 Java ME(J2ME) 앱을 구형 SDK 없이 최신 OpenJDK와 ProGuard만으로 빌드하는 방법이 공개되었습니다.
  • OpenJDK 8 기반으로 MIDP 2.0 라이브러리 스텁과 ProGuard 사전 검증을 활용해 실제로 구동 가능한 JAR 파일을 패키징합니다.
  • 작성자는 2009년 출시된 소니 에릭슨 S312 피처폰 실기기 구동을 목표로 개발 과정을 설명했습니다.
요약 스마트폰 이전 시대 피처폰에서 널리 쓰이던 자바 플랫폼 'Java ME(J2ME)'는 현재 거의 사장된 플랫폼으로 취급받습니다. 최근 피처폰(KaiOS 등)조차 웹 기반 기술을 사용하기 때문입니다. 하지만 집에 굴러다니는 오래된 구형 피처폰에서 실제로 구동되는 자바 앱을 개발하고 싶은 취미 개발자들을 위해, 구형 Sun SDK 없이 최신 개발 도구만으로 Java ME 앱을 빌드하는 방법이 소개되었습니다. 빌드를 위한 기본 환경으로는 OpenJDK 8(Temurin 등)과 함께, 컴파일에 필요한 자바 ME API 스텁 JAR를 얻기 위한 MicroEmulator, 그리고 바이트코드 사전 검증(Preverification)을 위한 ProGuard(7.1.1 버전)가 사용됩니다. 간단한 'Hello World' MIDlet 소스코드를 작성한 후, MicroEmulator에서 추출한 cldcapi11.jar(CLDC 1.1)와 midpapi20.jar(MIDP 2.0)를 클래스패스로 지정해 컴파일을 진행합니다. 이때 호환성을 위해 `-source 1.3 -target 1.1` 옵션을 지정하여 구형 바이트코드 규격(45.3)을 생성하고, OpenJDK 8의 기본 SE 라이브러리를 덮어쓰도록 설정합니다. 이후 MIDlet 이름, 아이콘 경로, 진입점 클래스 정보가 담긴 매니페스트 파일(MANIFEST.MF)과 리소스(16x16 아이콘)를 묶어 JAR 파일을 패키징합니다. 마지막으로 Java ME 기기의 경량 가상 머신(KVM)에서 필수적인 '사전 검증' 단계를 구형 툴 대신 ProGuard의 `-microedition` 옵션으로 처리하면 실제 기기나 에뮬레이터(FreeJ2ME-plus 등)에서 구동 가능한 최종 JAR가 완성됩니다. 작성자는 실제로 2009년 출시된 소니 에릭슨 S312 기기를 활용해 테스트를 진행했습니다.
Sponsored · 광고