사용자 삽입 이미지



Java 와 모바일 환경과의 만남

필자도 모바일 프로그래밍의 경험은 많지 않지만 J2ME를 만나서 6개월을 지내오면서 모바일에 관련된 내용을 이것 저것 공부하면서 그리고 주위 사람들을 통해서 들은 이야기를 토대로 여러분에게 조금이나마 J2ME 모바일 프로그래밍에 관심을 가진 분들에게 도움을 주고자 한다. 현재 Java 환경에서 이루어지는 프로그래밍 환경은 대부분 기업(Enterprise)의 Business 처리를 하기 위한 용도로 사용되고 있기 때문에 J2EE 기반의 기술들인 JSP , Servlet, EJB ,JDBC 이 주로 활용되고 있으며, 또한 분산 환경에 배치되어 있는 컴포넌트간의 Coupling을 줄이고 컴포넌트의 독립적인 수정을 위해서 다양한 J2EE 패턴들이 등장하여 사용되어 지고 있다. 필자 역시도 J2EE 기반의 시스템 구축에 대한 지원 및 컨설팅을 주로 하고 있으며 위에서 언급한 내용들에 익숙해 있다. 그런데 J2ME 환경은 지금 까지 해왔던 기업의 어플리케이션 프로그래밍과는 조금 차이가 있으며 시스템 상의 제약을 고려하여야 하는 부분 및 기업 어플리케이션과 다른 점을 알아야 될 것이다. 만약 아직까지 Java 프로그래밍을 이용해서 어떤 분야에 전문가로가 되어야 할 지 결정하지 못한 프로그래머라면 J2ME 환경으로 시작하기를 권하고 싶다. J2ME 프로그래밍은 아직도 계속 발전하고 있고 향후에 보다 많은 전문가들이 필요해 질 것으로 예상 되기 때문에 지금 시작해도 늦지 않으리라 생각한다.


 

● J2ME 와의 우연한 만남

올해 봄에 우연히 모바일 프로그램의 세계로 들어서게 된 것으로 기억한다. 친구를 통해서 모바일에 관련된 좋은 아이템을 갖고 있다는 연락과 함께 몇 차례 만남을 갖고 핸드폰에서 구동될 수 있는 Java 프로그래밍과 MCP (Master Contents Provider) 로서의 역할을 맡아 달라는 제의가 있었고 필자 또한 그 당시에 Java 언어를 활용할 수 있는 여러 가지 사업을 구상하고 있을 쯤이라 주위에서 모바일 프로그래밍 쪽이 점점 유망해 질 것이라는 말들을 들은 바 있어 흔쾌히 받아 들였고 그렇게 모바일 프로그래밍과 J2ME의 인연을 시작하게 되었으며 현재 그 일은 열심히 진행하고 있다. 필자에게는 새롭게 찾아온 또 한번의 기회가 될 것이라고 생각하고 있다.

 

● 모바일 시장에서 J2ME의 가치

J2ME는 스마트 카드, 휴대폰 , 셋탑박스 TV, 가전 기기를 비롯한 다양한 장치에서 사용되고 있으며 우리의 일상 생활 속에 알게 모르게 많이 사용이 되고 있다. 필자는 앞에서 언급 했던 것처럼 주로 핸드폰에서 J2ME 가 사용되는 경우를 이야기 하려고 한다. 최근 자료에 따르면 2004년 까지 세계적으로 10억 명에 이르는 이동 통신 가입자가 될 것이라고 전망하고 있으며 국내의 사례만 보더라도 이미 2000만 명 정도의 가입자가 이동 통신사업자(이하 이통사)에 등록 되어 있다고 한다. 국내의 이통사를 대표하는 SK 텔레콤에서 판매되는 휴대폰의 70% 이상은 SK-VM을 채택하고 있다는 것은 J2ME의 가치를 좀 더 높여주고 있다고 할 수 있다. 요즘 자바≒모바일(자바라는 단어만 떠올려도 모바일)이라는 단어가 연상될 만큼 모바일 프로그래밍에 대한 관심은 가히 폭발적이다. 일본의 유명한 이통사인 NTT DoCoMo의 자바 플랫폼 서비스인 I-mode 서비스를 시작으로 우리나라에서 LG 텔레콤이 가장 먼저 ez-java 서비스를 시작하였고 우리나라 이동 통신 사용자의 50% 이상을 점유하고 있는 SK 텔레콤도 SK-VM 서비스를 시작하면서 자바 모바일 시장에 불을 지폈다.
이러한 추세는 이미 무선 인터넷을 통해 유비쿼터스의 맛을 본 사용자들에게 점점 더 가까이 다가설 것으로 보인다. 그래서 e-Business 어플리케이션에서 점점 모바일 장비의 발전과 함께 m-Business 어플리케이션으로 전환이 점점 가속화 되고 있다. J2ME 기술이 이러한 IT 패러다임 변화에 순응하는 핵심기술로 부상하고 있는 것은 어느 누구도 부인하지 않을 것이다.
J2ME 기술은 Java가 지향하고 있는 플랫폼 독립성을 추구하기 때문에 다양한 무선 기기들에 따라서 메모리,CPU 등이 각기 다르기 때문에 특정 언어로 개발되어진 애플리케이션은 동작하지 않는 문제가 있을 수 있으나 J2ME는 그렇지 않다. 물론 J2ME 표준에서 제공되는 기능에 대해서 적어도 그렇다. 하지만 현재 국내의 SKT , LGT 의 Java 기반 환경은 자사의 환경을 고려해서 update를 해 놓은 상태여서 바로 동작하지 않을 수 있으며 어플리케이션의 조금의 수정을 통해서 70% 이상의 코드는 재사용할 수 있다. 이러한 문제들은 모바일표준플랫폼 WIPI 2.0 이 나오면서 표준으로 채택되면 Java가 추구하는 “Write Once, Run Anywhere” 가 실현 될 수 있을 것 같다. 그리고 향후에 국내의 폰들은 WIPI를 기반으로 구동될 것으로 예상된다.(물론 이통사 들이 어떻게 움직이느냐에 따른 변수는 있지만)

 
 

● 프로그래밍 구조의 변화

프로그래밍 구조는 사용자의 환경 및 요구(Needs)가 변화함에 따라 유행처럼 변화하고 있다. 과거의 메인 프레임 호스트 방식의 CUI(Command User Interface) 환경에서 시작해서 클라이언트/서버 방식의 GUI (Graphical User Interface) 환경, 3-Tier 분산 환경 등 현재 가장 보편적으로 사용되고 있는 Web 프로그래밍 방식까지 많은 변화와 성장을 거듭하고 있다. 최근에 화두가 되고 있는 것은 모바일 프로그래밍과 X-internet 프로그래밍 환경이다. 두 가지 프로그래밍의 중심에는 Java 가 밀접하게 관계 되어 있다.
X-internet 솔루션의 평가의 기준이 되는 것 중 PDA 및 모바일 기기에서 어플리케이션이 동작 될 수 있는 인터페이스를 고려하고 있는 지가 주요 사항이 되고 있다.모바일 프로그래밍이 대두되고 있는 것은 현재 전세계적으로 무선 이동 통신 사용자가 급속히 증가하는 추세에 있으며, 단순한 통화만을 목적으로 하던 초기의 이동 통신이 점차 핸드폰 상에서 인터넷을 사용하는 무선 인터넷으로 변화하면서 게임이나 여러 가지 엔터테인먼트 기능을 요구하고 있으며 여기에 발 맞추어 단말기 회사들도 이러한 흐름에 따라가려고 노력하고 있다. 간단한 예로 국내에서도 MP3 폰이 이러한 요구를 반영하고 있는 것을 알 수 있다.
이러한 환경을 고려하여 Sun 에서는 J2ME를 발표 하였고 그 중 이동 통신과 연관이 되는 CLDC(Connected Limited Device Configuration) 와 MIDP(Mobile Information Device Profile)를 내 놓았고 SK Telecom의 SK-VM 이나 LGT의 Kitty Hawk 이 이러한 기술을 기반으로 하고 있다.

 
 

● 이제 J2ME 전문가가 되자.

J2SE 나 J2EE 를 이미 사용하여 프로그램을 개발해 본 사람이라면 J2ME 프로그래밍이 어렵지 않을 것이다. 물론 J2SE에 대한 약간의 기술만 있으면 J2ME는 쉽게 프로그래밍은 할 수 있다. 다만 J2ME 프로그래밍에서는 에뮬레이터에서 정상적으로 동작하더라도 실제 핸드폰에서 정상적으로 동작되지 않는 경우가 있어 그런 부분에 어려움이 있으나 이것은 여러 번의 시행착오와 먼저 하신 선배님들의 도움으로 해결이 되리라 믿는다.
앞에서 얘기한 어려움은 제외하고 J2ME와 J2SE의 가장 큰 차이로 J2ME를 기반으로 하는 장치들은 리소스가 제한적이라는 것을 제외하면 어플리케이션 프로그램 방식은 동일하다.
예전에 Java 가 처음 국내에 도입되기 시작한 1998년 초에만 하더라도 AWT 를 이용한 Java 어플리케이션이 유행하였고 그런 것들이 Applet과 함께 사용되어 프로그래밍이 되었던 것이 기억난다. J2ME 프로그래밍을 자세히 들여다 보면 그 때의 프로그래밍이 생각난다.

여러분들도 J2ME 전문가가 되기 위해서 아래의 내용을 중점적으로 공부하기 바란다.
1. Java의 기본 프로그래밍 방법
2. AWT를 이용한 GUI 구성 방법
3. AWT를 이용한 Event 처리 방법
4. WAP(Wireless Application Protocol)과 WML(Wireless Markup Language)의 이해
5. Applet의 Life Cycle (MIDlet의 Life Cycle 와 유사)의 이해
6. 핸드폰을 통한 다양한 컨텐츠의 활용을 통한 무선 인터넷 이해
7. CLDC(Connected Limited Device Configuration) API 이해
8. MIDP(Mobile Information Device Profile) API 이해
9. Wipi 기반의 Jlet 이해
10. 추가적으로 다양한 알고리즘에 대한 지식이 풍부하면 도움이 됨
“늦었다고 생각할 때가 가장 빠를 때”라고 하는 말이 있다.
여러분들이 아직 모바일 프로그래밍을 시작하지 않았거나 Java를 모른다는 두려움을 갖지 말고 여러분에게 새로운 기회가 될 수 있을 것이라 생각하고 위에서 언급한 내용을 위주로 공부해서 J2ME 전문가의 길로 접어들 수 있기를 추천한다.

여러분들이 Java 프로그래머로써의 길을 여는데 조금이나마 도움이 되기를 기대하면서 이야기를 마칠까 합니다. 감사합니다

"Career Path" 카테고리의 다른 글

2006/01/01 18:34 2006/01/01 18:34

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/16

댓글을 달아 주세요

  1. 이우철  수정/삭제  댓글쓰기

    멋진 칼럼 감사합니다.
    이 글을 보니 갑자기 프로그래머가 되고 싶네요

    2007/09/07 20:10
  2. 윤태호  수정/삭제  댓글쓰기

    J2ME로 구현을 해보았었는데 그리 어렵지 않고 재미도 있었습니다. 게임 구현인 경우에는 여러가지 상황을 고려해야 했습니다. 역시 모바일쪽에서는 최고입니다.

    2007/09/08 15:58
  3. 김문경  수정/삭제  댓글쓰기

    강규철 이사님 좋은 글 감사합니다^^

    2007/09/16 14:34
  4. 윤이향  수정/삭제  댓글쓰기

    좋은글 잘 읽고 갑니다. 어느 분야건 전문가가 되지 않으면 않되는 세상이니...저도 노력해 볼랍니다. 좋은 하루 되세요~

    2007/09/18 20:45
  5. 박정숙  수정/삭제  댓글쓰기

    좋은 정보 감사해요~

    2007/09/19 04:53
[로그인][오픈아이디란?]

◀ Prev 1  ... 454 455 456 457 458 459 460 461 462  ... 626  Next ▶