여러 세대의 진보를 거듭한 후 현재의 휴대전화는 개발자들이 Unix, 이메일, 인터넷까지 이용할 수 있는 무선 웹 접속이 가능한 기기들이다. 이것들은 수십 메가 바이트의 메모리와 수십 ㎒ 속도의 다중 CPU를 장착하고 있다. 그러나 지금까지는 이러한 컴퓨팅 능력이 거의 사용된 적이 없다.
결국 여러 가지 잠재적인 기회들이 무수한 이들의 손 안에서 잠자고 있는 것이다. 현 세대의 휴대 전화 중 대부분은 프로그래밍 언어와 라이브러리가 결합된 Java 언어를 지원하기 때문에 개발자들이 간단한 코드를 개발하여 최소한의 노력으로 다른 여러 종류의 하드웨어에서 일대일로 실행시킬 수 있다.
분명히 모토롤라나 노키아, 삼성 휴대 전화에 키보드를 연결해서 코딩을 시작하는 것은 불가능 하지만 Java 개발 환경에서 코드를 개발하는 것은 상대적으로 간단하다. 먼저 Java 개발 환경을 선택해서 다운로드받고 휴대 전화 제조 업체의 웹 사이트에서 샘플 코드를 보고 그대로 입력하는 것이다.
입력이 끝나면 웹페이지에서 컴파일된 코드로 연결되는 링크를 삽입한 후 휴대 전화의 브라우저에서 다운로드 받으면 된다.
21세기 들어 Java를 지원하는 휴대 전화가 널리 보급됨에 따라 웹 상에 수 천 개의 응용 프로그램들이 등장해 다운로드를 기다리고 있다. 해커들은 ‘퐁(Pong)’부터 ‘스페이스 인베이더’, ‘팩맨’에 이르기까지 80년대를 풍미했던 8비트 카트리지 게임에서부터 채팅 클라이언트와 저해상도 포르노, 식료품 목록 관리 프로그램, 신문 기사 제공 프로그램, 웹 캠 뷰어, 스트리밍 비디오 클라이언트 등을 사람들의 휴대폰으로 보내고 있다.
이러한 응용 프로그램들 중 어떤 것들은 Java 기반의 휴대 전화가 가지고 있는 능력을 100% 활용하지 않는 것처럼 보인다면 그 이유는 설계 상의 문제에서 찾아야 할 것이다. 노키아의 Java 응용 프로그램 관리자인 빅터 브릴런과 노키아의 미디어 관련 관리자 찰스 촙은 내가 휴대 전화의 컴퓨팅 및 통신 기능을 완벽하게 이용하는 Java 프로그램 작성에 대해 질문하자 웃음을 터트렸다.
PC에서처럼 휴대 전화에서의 Java 응용 프로그램은 주위 환경에 피해를 주지 않도록 하는 ‘샌드박스’라는 개념 내에서 실행된다. 따라서 전화를 걸거나 휴대 전화에 로드된 다른 프로그램과의 통신이 불가능하고 동시에 휴대 전화에 내장된 두 개의 CPU보다 훨씬 강력한, 음성을 디지털로 인코딩 및 디코딩하는 디지털 신호 프로세서(DSP)에 대한 접근 역시 불가능하다.
예를 들어, 5초마다 119에 전화를 걸도록 하는 악의적인 코드를 다운로드 했을 경우나 휴대 전화의 RAM에 사용자의 음성 통화 내용을 녹음했다가 전화 번호 목록 중 임의의 전화로 전화를 걸어서 이 내용을 전송하는 코드를 상상해 보면 이러한 차단 정책은 그만한 충분한 이유가 있다는 것을 알 수 있을 것이다.
올해 여름에 출시될 예정인 MIDP(휴대 정보 장치 프로파일, 휴대 전화를 포함, 휴대용 장치의 샌드박스 환경 내에서의 실행에 대한 표준) 새 버전은 사용자들이 휴대 전화에 있는 보다 많은 자원들을 활용할 수 있도록 허용하게 된다. 단 제조 업체나 기타 다른 산업계 승인 기구에 의해 승인된 ‘신뢰할 수 있는’ 응용 프로그램만을 대상으로 한다. 이렇게 되면 어떤 변화가 있을지 자못 기대된다.
하지만 MS 오피스와 같은 프로그램을 구현하지 못하는 해커가 휴대 전화에서 그 위안을 삼는다면 그게 무슨 소용일까? 다시 말해 과거의 비디오 게임은 차치하고라도 형편없는 그래픽에 부족하기만 한 메모리, 몇 개 밖에 되지도 않는 버튼이 사용자 인터페이스의 전부인 휴대 전화에서 다양한 응용 프로그램이 무슨 의미를 가지는 것일까?
이 문제에 도전하고 있는 프로그래머 중 VTTi라는 소규모 소프트웨어 벤처 회사에서 수석 기술자로 일하고 있는 팀 클라크가 있다. 그는 이 회사에서 휴대 전화의 시리얼 커넥터에 연결되는 어댑터 케이블을 주요 전략 상품으로 개발하고 있다. 이 일을 시작하게 된 계기는 한 욕탕 설비 제조회사에서 비롯되었다고 한다. 당시 이 업체는 지역의 설비 인력들이 신형 제어 장치용 분석 코드를 이해하지 못하면서 잘못된 부품들을 서비스 해 달라고 반품해 곤란을 겪고 있었다.
이제 이들은 클라크의 Java 코드가 실행되는 휴대 전화에 한쪽 케이블을 연결하고, 다른 한 쪽은 설비 제조회사에 연결시켜 일처리를 원활히 하고 있다. 이상이 생기면 5분 쯤 후 공장에 있는 엔지니어가 같은 전화기로 이 설비 인력에게 전화를 걸어 어디가 잘못되었는지 알리고 그에게 부품을 교체하거나 수리하도록 지시하는 시스템을 만든 것이다. 클라크와 그의 상사들은 다른 일반 소비자용 제품에서도 진단 포트 기능을 흔히 볼 수 있다는 것을 발견하고 이러한 아이디어를 얻었다.
자동차의 경우만 해도 자동차가 수 백 개의 센서 매개변수를 확인해 문제가 발생하더라도 ‘엔진 점검’ 표시등만이 켜지게 된다. 나중에 그 불을 보고 각각의 센서에서 입력된 것들을 분석하는데 이것이 도움을 주지 않을까? 클라크는 이러한 아이디어에 착안해서 일반적인 차량 진단 스캐너의 기능 중 80%에 달하는 부분을 휴대 전화에 코딩해 넣었다.
의료 장비에도 이러한 시리얼 포트가 장착되어 있다. 조깅하면서 휴대용 홀터(심박수를 기록하는 장치) 착용하고 있는 사람이 갑자기 쓰러졌다면 휴대 전화와 중앙 서버에 공유된 코드가 담당 의사에게 최근의 정보를 제공하게 만들 수도 있는 것이다. 날씨에 관해 관심이 많은 클라크는 온도계, 비중계, 풍력계, 기압계 등 계측기들에 연결하는 GPS 장착 휴대 전화에 들어갈 코드를 개발할 예정이다.
그는 이 장비들을 자동차에 설치하면 원하는 곳에서 ‘원격 기상대’ 역할을 할 것이라고 설명했다. 요약하자면 아직까지도 휴대 전화 내의 컴퓨터가 해야 할 일들은 무한하다고 할 수 있다. 우리 중 대부분은 국립 기상대에서 최신 기상 정보를 다운로드 하는 수준에 그치고 있지만 팀 클라크은 이미 휴대 전화를 이용해서 캘리포니아 북부 지역에서 강력한 태풍을 추적하고 있다는 사실은 많은 점을 시사하고 있다.
< 저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지 >