스마트 플랫폼과 모바일 콘텐츠 자동 변환기 기술
상태바
스마트 플랫폼과 모바일 콘텐츠 자동 변환기 기술
  • 황은정
  • 승인 2012.05.07 00:00
  • 댓글 0
이 기사를 공유합니다


SPECIAL FEATURE
 

스마트 플랫폼과 모바일 콘텐츠 자동 변환기 기술


글 이양선 컴퓨터공학과 교수(서경대학교)

국내외 플랫폼 업체와 이동통신사들이 서로 다른 모바일 플랫폼을 채택하여 사용함으로 인해 개발자는 하나의 모바일 콘텐츠를 서비스하기 위하여 각각의 스마트폰 플랫폼 특성에 맞추어 콘텐츠를 개발하거나 변환 작업을 해야 한다. 하지만, 기존의 모바일 콘텐츠를 스마트폰 플랫폼으로 이식하기 위한 변환 작업에 많은 시간과 비용이 소모되고 있다. 본 기고에서는 이런 문제를 해결하기 위해 WIPI나 GNEX와 같은 피처폰 플랫폼의 콘텐츠를 Android나 iOS와 같은 스마트 플랫폼의 콘텐츠로 또는 스마트 플랫폼의 콘텐츠를 다른 스마트 플랫폼의 콘텐츠로 자동 변환해주는 모바일 콘텐츠 자동 변환기 시스템을 소개하고자 한다.
 

1. 국내·외 현황

기술적으로는 최근에 프로그래머가 프로그램을 한번 작성하면 프로세서나 운영체제와 같은 플랫폼에 의존하지 않고 어느 시스템에서나 실행할 수 있는 가상기계(Virtual Machine)와 컴파일러 기술에 대한 연구, 가상기계를 이용하여 모바일 디바이스 상에서 동적인 애플리케이션을 실행할 수 있는 모바일 플랫폼에 관한 기술이 국내외적으로 활성화되고 있다. 또한, 무선 네트워크를 통해 단말기로 동적인 애플리케이션을 다운로드할 수 있다는 점에서 가상기계를 기반으로 모바일 플랫폼 기술에 관한 연구가 폭넓게 진행되고 있으며, 최근에 다양한 종류의 차세대 기능을 갖춘 스마트폰의 등장으로 새로운 환경을 맞고 있다.
산업적으로는 스마트폰이 확산되면서 가장 큰 산업의 변화는 패러다임의 변화이다. 기존의 음성통화 중심에서 애플리케이션으로 전환되면서 산업구조는 통신사업자가 서비스를 주도하는 중앙집중형에서 사업자와 무관하게 다양한 서비스 제공이 가능한 분산형으로 변화되었다. 또한, 패러다임이 전환되면서 경쟁의 원천도 개별우위 요소에서 애플리케이션 생태계 구축 역량으로 이동하고 있다. 즉, 스마트폰이 확산되면서 통신 서비스는 물론 단말기에서도 양질의 애플리케이션을 확보하는 것이 새로운 경쟁요소로 부상한 것이다. 따라서 개발자 참여가 소비자 이용을 이끌어내고 다시 더 많은 개발자가 참여하는 눈덩이 효과가 나타날 수 있도록 개발자와 소비자를 확보하여 애플리케이션 생태계를 구축하는 것이 관건이 되었다.
한편, 국내에서 일반적으로 사용하는 모바일 플랫폼에서 개발된 콘텐츠를 다른 통신사 및 해외 통신사에 서비스하기 위해서는 스마트폰 플랫폼인 Android, iOS(iPhone), Window Mobile로, 피처폰 플랫폼인 BREW, MIDP 등으로의 변환작업이 필수적이며, 국내의 경우는 현재 모바일 표준 플랫폼인 WIPI나 스마트폰 플랫폼인 Android, iOS, Windows Mobile(Windows Phone)로 변환해야만 한다. 일반적으로 모바일 원 소스 콘텐츠를 분석(1개월)하여 다른 플랫폼에 재구성(1-2개월)하는데 2-3개월의 시간과 2-3명의 인건비용이 소요된다. 이러한 변환작업을 자동화하는 솔루션을 개발함으로써 각각의 다른 플랫폼으로 전환 시 자동변환을 통해 변환 시간과 비용을 단축 할 수 있다.



2. 국내·외 기술동향 및 수준

(1) 해외의 기술동향 및 수준


스마트폰은 기본적인 휴대폰 기능에 컴퓨터와 같은 기능이 포함된 차세대 핸드폰으로, 시장의 각광을 받으며 널리 확산되고 있는 실정이다. 스마트폰의 플랫폼으로는 Google이 Java를 사용할 수 있는 Android 플랫폼을, Apple이 C/Objective-C 언어를 사용할 수 있는 iOS를, 마이크로소프트가 C/C++, C#, Java 등을 사용할 수 있는 Windows Mobile 플랫폼을, 그리고 노키아가 C/C++, Java 등을 사용할 수 있는 Symbian 플랫폼을 발표(표1 참조)함으로써 새로운 도전에 직면하고 있다. 현재는 이러한 모든 기술이 휴대폰 단말기와 같은 분야에만 집중되어 있으나 앞으로는 IPTV 등의 임베디드 시스템과 같은 컨버전스 플랫폼으로 확산될 예정이다.








(2) 국내의 기술동향 및 수준

지금까지 국내에서 발표된 스마트폰 플랫폼과 모바일 플랫폼은 표 2, 표 3과 같이 구분할 수 있다. 국내 이동 통신사들의 활발한 모바일 플랫폼의 도입은 다양한 애플리케이션과 솔루션 등장을 촉진시켜 전 세계 모바일 시장을 선점할 수 있는 좋은 기회를 맞고 있다. 그러나 작은 시장규모와 제한된 CP 풀 및 다양한 스마트폰 플랫폼의 등장으로 변화에 빠르게 대처해야 하는 매우 어려운 환경을 맞이하고 있다. 또한, 국내 기술도 휴대폰 단말기에만 집중되어 있지 다른 IPTV 등과 같은 다양한 컨버전스 플랫폼으로는 확산되지 못한 실정이다.











피처폰 플랫폼과 스마트폰 플랫폼

1. 피처폰 플랫폼

(1) WIPI 플랫폼

WIPI(Wireless Internet Platform for Interoperability)는 한국 무선 인터넷 표준화 포럼(KWISF)에 의해 제정되고, 한국정보통신기술협회(TTA)에 의해 TTAS.KO-60.0036으로 채택된 이동통신 단말기용 응용프로그램 실행 환경을 표준화한 규격이다. 이동통신 사업자들이 각기 다른 플랫폼을 사용함으로써 단말기 제조사와 콘텐츠 업체들의 개발 부담이 크다는 점 등을 들어 국내 무선인터넷 플랫폼 표준화의 필요성이 대두되면서 제정한 국내 표준 규격이다[1].
[그림 1]은 WIPI 플랫폼의 구조를 나타낸 것이다.

[그림 1] WIPI 플랫폼의 구조







WIPI는 응용프로그램 개발 언어로 네이티브(Native) 방식의 C와 자바를 모두 지원한다.
자바의 경우 AOTC(Ahead Of Time Compiler)를 통해 C로 변환하여 다시 네이티브 방식으로 실행된다. 위피 규격은 크게 HAL(Handset Adaptation Layer)과 기본 API(Application Programming Interface)로 구성된다. HAL은 플랫폼 이식성을 높이기 위한 표준화된 하드웨어 추상화 계층이다. 기본 API는 표준화된 플랫폼 호환성을 제공해 다양한 응용 프로그램 개발을 촉진하기 위한 기본 API 모음으로 C와 자바 API로 구성되어 있다.









(2) GNEX 플랫폼

GNEX 가상기계(Virtual Machine)는 GNEX 응용 프로그램을 해석하고 실행하는 역할을 한다. GNEX 커널은 다양한 시스템 인터페이스를 제공하며, 메모리 관리자 탑재로 GNEX 시스템을 보고하고 응용 프로그램의 크기 및 힙(Heap) 메모리 제약 등을 해소하는 역할을 한다. 이벤트 핸들러는 플랫폼의 이벤트를 받아 GNEX 이벤트로 변환하고 각 이벤트에 대응되는 알고리즘을 호출하여 처리한다. MIDD(Mobile Interface Device Driver)는 사운드 재생, LCD 출력 등 단말기의 하드웨어 관련 기능을 단말기 플랫폼에서 제공하는 API를 이용하여 구현한 것이며, 플랫폼 API의 호출과 실행 결과를 처리한다.
GNEX 응용 프로그램은 ANSI C 언어를 기반으로 한 모바일 C 언어로 개발한다. GNEX는 VDI(Variable Depth Image)라는 단말기 전용으로 설계된 이미지 형식을 사용한다. VDI는 픽셀 당 할당되는 비트 수를 가변적으로 정의하여 사용하는 일종의 비트맵 형식의 이미지 규격이다. GNEX 응용 프로그램에서는 BMP와 같은 이미지 파일을 GNEX SDK에서 제공하는 이미지 도구를 통해 VDI 형식으로 변환하여 모바일 C 소스 코드에 포함시킨다. 사운드 리소스 역시 GNEX 응용 프로그램에서 사용할 수 있도록 GNEX 규격의 사운드 파일로 변환하여 모바일 C 소스 코드에 포함하여 사용한다. [그림 2]는 GNEX 플랫폼의 구조를 나타낸 것이다[2].

[그림 2] GNEX 플랫폼의 구조











(3) MIDP 플랫폼

자바는 인터넷 분산 환경 시스템에서 효과적으로 응용 프로그램을 작성할 수 있도록 개발된 프로그래밍 언어로서, 객체지향 패러다임의 특성 및 다양한 개발 환경을 지원한다. 휴대폰, PDA 등과 같은 단말기를 목적으로 하는 자바 플랫폼을 J2ME(Java 2 Micro Edition)이라 한다. J2ME의 구조를 살펴보면 단말기의 운영체제 위에 가상기계(Virtual Machine)가 존재하고 그 위에 컨피거레이션(Configuration)과 프로파일(Profile)이 수직적인 구조로 위치하고 있다. 컨피거레이션이란 메모리 용량, 프로세서 속도 등 단말기에서 공통적으로 필요한 최소한의 가상 머신 기능과 라이브러리에 대하여 정의한 것이고, 프로파일은 그 상위의 클래스 라이브러리에 대한 명세를 의미한다[3-4]. [그림 3]은 MIDP 플랫폼의 구조를 나타낸 것이다.

[그림 3] MIDP 플랫폼의 구조







단말기용 자바플랫폼 CLDC(Connected Limited Device Configuration)/MIDP(Mobile Information Device Profile)는 KVM(Kilobyte Virtual Machine)을 기본 가상기계로 하는 CLDC와 무선 단말기 시장을 겨냥해서 CLDC를 기반으로 한 클래스 라이브러리에 대한 명세인 MIDP로 구성된다. MIDP 애플리케이션을 MIDlet이라 하며, 자바 애플릿과 흡사하다. CLDC는 KVM을 기본 가상기계로 채택하고 있는데, KVM은 단말기와 같이 메모리가 작고 CPU 속도가 느린 환경을 위하여 만든 작은 크기의 가상기계이다. CLDC는 KVM 규격을 기본 가상기계로 채택하고 여기에 코어 API, 네트워킹과 입출력, 보안과 국제화 등에 대한 정의를 포함한 J2ME 컨피거레이션이다.









2. 스마트폰 플랫폼

(1) iOS 플랫폼

iPhone 플랫폼인 iOS(iPhone Operating System)는 애플의 스마트폰인 아이폰과 디지털 미디어 재생기기인 아이팟 터치, 태블릿형 컴퓨터인 아이패드에 내장되어 있는 운영체제이다. 실제로는 Mac OS X를 기반으로 만들어져 있으며 Mac OS X의 기본 구조와 비슷하다. iOS는 하드웨어와 화면에 보이는 애플리케이션의 중간 역할을 한다. 애플리케이션은 직접 하드웨어와 연결되지 않으며 시스템 인터페이스를 통해서 연결된다. iOS는 코어 OS 계층(Core OS Layer), 코어 서비스 계층(Core Services Layer), 미디어 계층(Media Layer), 코코아 터치 계층(Cocoa Touch Layer)의 네 개의 소프트웨어 계층으로 구성되어있다. [그림 4]는 iOS의 구조를 나타낸 것이다[5-6].

[그림 4] iOS 플랫폼의 구조






코어 OS와 코어 서비스 계층은 기본적인 시스템 API 등을 제공한다. iOS는 Mac OS X와 같은 유닉스 기반으로서 POSIX 표준을 준수하는 API들을 제공한다. 네트워크 소켓에 관련된 부분이라든가 스레드 같은 부분은 POSIX 표준으로 바로 작성할 수 있다. 미디어 계층에서는 C 언어와 Objective-C 언어를 섞어서 사용하는 프레임워크들이 제공된다. 3D 기능을 사용할 수 있는 OpenGL ES부터 이를 코코아에서 편하게 쓸 수 있도록 도와주는 코어 애니메이션 프레임워크, 그리고 소리 재생과 관련된 코어 오디오 프레임워크 등이 지원된다. 코코아 터치 계층은 아이폰 및 아이팟 터치용 API로서, 4개의 추상화 계층 중 가장 상위 계층에 존재하며, 개발자로 하여금 하위 계층을 자세히 알 수고를 덜어준다. GUI를 구현하고 이벤트-구동(Event-Driven) 기법을 쓰는 아이폰 및 아이팟 터치용 응용 소프트웨어는 보통 코코아 터치 계층에 기반 돼 작성된다. 코코아 터치는 iOS에 대한 일종의 추상화 계층을 제공한다.








(2) 안드로이드 플랫폼

안드로이드(Android) 플랫폼은 구글에서 개발한 운영체제, 미들웨어, 응용 프로그램을 포함하는 모바일 기기에 최적화된 플랫폼이다. 안드로이드 플랫폼은 오픈 소스 정책을 채택하였으며, 리눅스 커널, 라이브러리, 런타임, 애플리케이션프레임워크, 애플리케이션으로 구성되어 있다.
[그림 5]는 안드로이드 플랫폼의 계층 구조와 구성요소를 도시한 것이다. 리눅스 커널은 보안, 메모리 관리, 프로세스 관리, 네트워크 스택, 드라이버 모델과 같은 리눅스 버전 2.6의 핵심 시스템 서비스를 이용하며, 커널은 하드웨어와 소프트웨어 간의 추상 계층으로 동작한다. 라이브러리는 C와 C++로 구성되었으며 C 시스템 라이브러리, 미디어 라이브러리, 3D 라이브러리 등을 제공한다. 애플리케이션 프레임워크는 자바로 구성된 패키지 컴포넌트이며, 애플리케이션은 이 프레임워크의 패키지를 사용하여 작성할 수 있다[7].

[그림 5] 안드로이드 플랫폼의 계층 구조







안드로이드 플랫폼의 모든 응용 프로그램은 자바로 작성되며, 작성된 응용 프로그램은 자바 컴파일러에 의해 클래스 파일로 변환된다. 생성된 클래스 파일은 실행에 앞서 DEX(Dalvik Executable File) 형식으로 다시 변환되며, Dalvik 가상기계에 의해 실행된다. DEX 파일은 저장 공간과 메모리 사이의 효과적인 매핑 정의에 최적화된 포맷이며, Dalvik 가상기계는 레지스터 기반의 가상기계로 제한된 메모리에 최적화된 특징을 가진다.








(3) 윈도우 모바일(WM) 플랫폼

윈도우즈 모바일(Windows Mobile, WM, 윈도우즈 폰으로 브랜드 명칭 변경)은 PDA 및 스마트폰에 사용하는 운영 체제이다. 이전에는 포켓 PC라고 불렸다. 이 운영체제는 마이크로소프트사에서 내놓은 모바일 운영체제로 임베디드용 운영 체제인 윈도우즈 CE를 기반으로 하고 있고, 모바일 환경에 적합한 새로운 터치식 사용자 인터페이스를 추가하여 개발되고 있으며, 윈도우즈 CE의 기본적인 기능에 휴대전화 기능이 추가되어 있어서 현재 삼성전자, LG전자, HTC, 모토로라, 노키아 등의 기업체에서 생산하는 다수의 PDA 폰에서 윈도 모바일을 탑재하고 있다.
윈도우즈 모바일 6 버전은 모바일 장치를 위한 플랫폼으로 윈도우즈 CE 5.0을 기반으로 제작 되었고 스마트폰과 PDA와 같은 하드웨어를 지원한다. 마이크로소프트 비주얼 스튜디오 2005와 윈도우즈 모바일 SDK로 비쥬얼 C++와 비쥬얼 C#, 비주얼베이직 .NET 코드로 윈도우즈 모바일 플랫폼을 위한 소프트웨어 개발을 할 수 있다. [그림 6]은 윈도우즈 모바일의 구조를 나타낸 것이다.

[그림 6] 윈도우즈 모바일 시스템의 구조







윈도우즈 모바일 6.5 버전은 윈도우즈 모바일 장치에 윈도우즈 데스크탑의 계열을 적용한 것이다. 여기선 터치스크린에 맞게 UI가 상당수 변경되었으며, 기존에 지원했던 클래식 포켓 PC 버전과 잘 사용되지 않는 해상도의 버전이 삭제되었고, 윈도우즈 모바일 6.1.4에서보다 더 강화되고 간편해진 인터넷 익스플로러 모바일 6가 기본 내장되어 있다. 윈도우즈 모바일은 윈도우즈 임베디드 CE 5.2 기반이며 .NET 컴팩트 프레임워크를 지원한다[8].
윈도우즈 모바일 플랫폼을 사용하면 획기적인 모바일 애플리케이션을 제작 할 수 있다. 이 플랫폼은 데이터 연결과 강화된 보안을 제공한다. 블루투스와 POOM(Pocket Outlook Object Model)과 같은 다양한 API를 제공한다. Native 코드(CPP), Managed 코드(C#), 모바일 웹 개발, 멀티 스레딩과 같은 장치 자원과 같은 프로그래밍 모델들을 광범위하게 포함한다. 또한, 윈도우즈 개발 환경과 유사한 이점으로 개발시간과 비용을 줄일 수 있다.









모바일 콘텐츠 자동 변환기 시스템

스마트폰 플랫폼을 위한 모바일 콘텐츠 자동 변환기 시스템은 다음과 같은 다섯 가지 컴포넌트로 구성된다. (1) 입력받은 콘텐츠의 소스 코드에서 리소스 데이터를 분리하고 사용된 폰트를 추출하는 콘텐츠 분석기 (2) 콘텐츠에 사용된 이미지, 사운드와 같은 리소스 데이터를 목적 플랫폼에 맞게 변환해주는 리소스 변환기 (3) 콘텐츠 제작에 사용된 소스 코드를 컴파일러 제작 기술을 이용하여 목적 플랫폼의 소스 코드로 자동 번역해주는 소스 코드 자동번역기 (4) 콘텐츠의 실행환경과 API 함수를 목적 플랫폼에 맞게 구축해주는 플랫폼 매핑엔진(API 변환기)
스마트폰을 위한 모바일 콘텐츠 자동 변환기 시스템 모델은 [그림 7]과 같다[9-17].

[그림 7] 스마트폰을 위한 모바일 콘텐츠 자동 변환기 시스템 모델













1. 콘텐츠 분석기

콘텐츠 분석기(Content Analyzer)는 입력받은 콘텐츠를 분석하여 콘텐츠에 내재된 리소스 데이터와 소스 코드를 분리하여 출력하는 시스템이다. 즉, 콘텐츠 분석기는 이미지나 사운드 타입의 변수 형태인 리소스 데이터를 각 변수별로 분리하고 구조체에 정보를 담아 리소스 목록을 생성하고 실제 이미지나 사운드 리소스 데이터 인지, 맵 타일(Map Tile) 등의 사용자 데이터 인지 구분하여 리소스 변환기에 전달한다. 그리고 리소스 부분을 제외한 나머지 소스 코드 부분은 소스 번역기에 전달하여 목적 플랫폼의 소스 언어로 자동번역하게 한다. [그림 8]은 콘텐츠 분석기의 시스템 모델이다[12-17].

[그림 8] 콘텐츠 분석기의 시스템 모델












2. 리소스 변환기

리소스 변환기(Resource Converter)는 입력 콘텐츠에 사용된 텍스트 또는 바이너리 형태의 리소스 데이터를 목적 플랫폼의 파일 시스템에서 사용할 수 있도록 이미지 데이터와 사운드 데이터, 그리고 사용자 데이터로 변환하여 각 파일로 변환하는 시스템이다. 이를 위해 각 플랫폼에서 사용하는 이미지 파일 형식(자체 이미지 형식-VDI, BMP, PNG, JPEG GIF 등), 사운드 형식(MMF. MP3, MIDI 등), 사용자 데이터를 조사하고 목적 플랫폼에서 사용할 수 있도록 변환해 주어야 한다[10,12-17]. 그리고 어떤 리소스가 사용되었는지를 나타내는 관리파일만 작성해주면 된다. 또한, 자체 형식을 사용한 경우에는 그 기능을 지원하기 위해 형식은 유지하고 텍스트 형태에서 해당 플랫폼의 형식으로 변환하고 해당기능을 지원하는 API 함수를 통해 사용할 수 있게 해주면 된다. 텍스트 형태의 사용자 데이터도 해당 플랫폼의 파일 시스템을 통해 접근 가능하도록 바이너리 파일 형태로 출력해야 한다. [그림 9]는 리소스 변환기의 시스템 모델이다.

[그림 9] 리소스 변환기의 시스템 모델











3. 소스 코드 자동번역기

기존의 콘텐츠 변환기가 소스 코드의 변환을 위해 문장의 단어에 대한 스트링 패턴 매칭 방식을 사용하거나 프로그래머가 직접 변환을 하는 수동적인 방법을 사용하지만, 모바일 콘텐츠 자동 변환기에서 제안한 방법은 시스템 소프트웨어인 컴파일러 제작 기술을 사용하여 소스 코드를 목적 플랫폼의 언어로 체계적으로 자동 변환하는 방법을 사용한다. 따라서 소스 자체를 문법적 단위로 접근 하게 되어 모든 경우에 맞추어 변환이 가능하다. 또한 입력 언어의 문법적인 상태에서 다른 언어, 예를 들어 C에서 Java, Java에서 C로의 변환도 쉽게 가능하다.
소스 코드 자동번역기(Source Translator)는 컴파일러 기술을 이용하여 입력받은 콘텐츠의 소스 코드를 목적 플랫폼의 소스 코드로 정형한 방법을 사용하여 자동 변환해주는 시스템으로 전처리기(Preprocessor), 어휘 분석기(Lexical Analyzer), 구문 분석기(Syntax Analyzer) 및 소스 번역기(Source Translator)로 구성된다. 이와 같은 자동 변환 방법은 국내에서 최초로 시도하는 방법으로 그동안 게임 솔루션 업체들이 사용한 수동적인 방법 즉, 프로그래머가 직접 각 문장을 비교하여 그 문장과 일치하는 목적 언어로 변환하는 방법과는 차별적인 방법인 것이다[11-15,17-22]. [그림 10]은 소스 코드 자동번역기의 시스템 모델을 나타낸 것이다.

[그림 10] 소스 코드 자동번역기의 시스템 모델












4. 플랫폼 매핑 엔진

소스 번역기는 소스 플랫폼과 목적 플랫폼 간의 사용 언어를 자동으로 번역해주는 기능을 할뿐, 실행할 목적 플랫폼의 응용 프로그램을 생성하지는 못한다. 즉, 소스 번역기를 통해 번역된 소스 코드는 목적 플랫폼에서 바로 실행되지 않는다. 소스 코드에서 사용된 API 함수, 시스템 변수, 이벤트 핸들러 등을 목적 플랫폼에서 지원하는 형태로 변환해주어야 실행이 가능해 진다. 플랫폼 매핑 엔진은 이 작업을 자동으로 처리하는 역할을 한다. 즉, 플랫폼 매핑 엔진(Platform Mapping Engine)은 입력 플랫폼과 동일한 형태의 API 함수와 시스템 변수를 지원하기 위해 입력 플랫폼의 디스플레이, 그래픽, 사운드 출력, 이벤트, 진동, 데이터 저장 등의 시스템 환경과 유사한 환경을 구축하고 이를 바탕으로 시스템 변수 및 API 들을 목적 플랫폼에서 동일하게 동작하도록 구현한다. 또한, 입력 플랫폼의 이미지 형식 출력을 위한 환경, API 함수를 제공하고 이미지, 사운드 타입의 멀티미디어 자료형 등을 목적 플랫폼에서도 사용할 수 있도록 지원한다. 그리고 타이머와 시스템 API, 핸드셋 제어(Handset Control) API, 네트워크 API, DB API 등도 동일한 동작을 하도록 구현한다. 이렇게 함으로써 번역된 소스 코드를 추가적으로 수정하지 않고 실행할 수 있도록 할 수 있다. 변환기에서 제공하는 API는 소스 플랫폼의 API와 유사한 형태로 동일한 기능을 수행하도록 래퍼 함수(Wrapper Function)를 사용하여 구현한다. 이를 통하여 소스 플랫폼의 디스플레이, 그래픽, 사운드 출력, 이벤트, 진동, 데이터 저장 등의 시스템 환경과 유사한 환경을 제공하고 이 환경을 바탕으로 소스 플랫폼의 시스템 변수 및 함수들을 목적 플랫폼에서 동일하게 동작하도록 구현할 수 있다[9-10,12-15,17,22]. [그림 11]은 플랫폼매핑엔진의 시스템 모델을 나타낸 것이다..

[그림 11] 플랫폼매핑엔진의 시스템 모델











모바일 콘텐츠 변환 결과

피처폰의 WIPI나 GNEX 플랫폼에서 개발된 모바일 콘텐츠를 iOS나 Android와 같은 스마트폰 플랫폼 콘텐츠로 자동변환하기 위해 3장의 콘텐츠 분석, 리소스 변환, 소스 자동 번역, 플랫폼매핑엔진을 통한 API 지원 등을 통해 몇 가지 피처폰 콘텐츠를 변환하여 보았다. 다음은 그 실행결과이다.


(1) 모바일 콘텐츠의 변환내용(GNEX-to-WIPI, GNEX-to-Android)

GNEX/WIPI 플랫폼에서의 실행결과













GNEX/Android 플랫폼에서의 실행결과
.












(2) 모바일 콘텐츠의 변환내용(GNEX-to-iOS)


GNEX/iOS 플랫폼에서의 실행결과 - 1














GNEX/iOS 플랫폼에서의 콘텐츠 실행결과 - 2













(3) 모바일 콘텐츠의 변환내용(WIPI-to-Android)

WIPI/Android 플랫폼에서의 실행결과 - 1











WIPI/Android 플랫폼에서의 실행결과 - 2














(4) 모바일 콘텐츠의 변환내용(GNEX-to-iOS)


GNEX/iOS 플랫폼에서의 실행결과 - 1













GNEX/iOS 플랫폼에서의 콘텐츠 실행결과 - 2

















(5)모바일 콘텐츠의 변환내용(WIPI-to-Windows Mobile)


WIPI/Window Mobile 플랫폼에서의  콘텐츠 실행결과 - 1













WIPI/Window Mobile 플랫폼에서의 콘텐츠 실행결과 - 2












(6)모바일 콘텐츠의 변환내용(iOS-to-Android)

iOS/Android 플랫폼에서의 콘텐츠 실행결과 - 1










iOS/Android 플랫폼에서의 콘텐츠 실행결과 - 2
















마치며

스마트폰이 등장하면서 스마트폰 앱 콘텐츠 시장은 매년 높은 성장률의 시장 규모를 이어가며 스마트폰 시장 최고의 킬러 콘텐츠로 자리 잡았다. 하지만 스마트폰 플랫폼이 달라 하나의 스마트폰 앱 콘텐츠를 서비스하기 위하여 콘텐츠를 중복 개발하거나 변환해야 하는 문제점이 있다.
현재 출시되고 있는 스마트폰들의 플랫폼이 모두 다르고 표준화되어 있지 않으며 다양한 프로세서에 대한 독자적인 프로그램 개발 환경을 갖고 있기 때문에 플랫폼마다 프로그램을 개발해야 하는 속성을 가지고 있으며 같은 작업을 하는 동일한 프로그램에 대하여 플랫폼마다 프로그램을 다시 개발해야 하는 단점을 내포하고 있다. 이러한 단점을 극복하기 위한 방법으로 콘텐츠를 재사용할 수 있는 콘텐츠 변환 기술이 효과적이며 OSMU(One Source Multi Use)를 구현할 수 있는 방법 중 하나이다.
이 원고에서 제안한 모바일 콘텐츠 자동 변환기 시스템은 이런 문제를 해결할 수 있는 하나의 방법이다. 본 변환기는 기존의 모바일 콘텐츠를 다른 피처폰의 모바일 콘텐츠나 스마트폰 플랫폼인 아이폰의 iOS나 구글의 안드로이드 콘텐츠로, 또는 iOS 앱을 안드로이드 앱이나 안드로이드 앱을 iOS 앱으로 스마트폰 플랫폼 콘텐츠 간의 변환 작업이 단기간 내에 자동으로 진행될 수 있도록 하여 피처폰 콘텐츠를 스마트폰 플랫폼으로, 스마트폰 플랫폼 앱을 다른 스마트폰 플랫폼 앱으로 이식하기 위한 개발 과정, 변환 과정에 중복 투자되던 시간 및 기간을 상당히 단축함으로써 생산성을 향상시킬 수 있도록 하였다.

 


참고문헌

[1] 한국 무선인터넷 표준화 포럼, 모바일 표준 플랫폼 규격, http://www.kwisforum.org/.
[2] 신지소프트, GNEX SDK, http://www.gnexclub.com/download/download_a1.jsp.
[3] James Gosling, Bill Joy, Guy Steele and Gilad Bracha, The Java Language Specification, Third Edition, Sun Microsystems Inc, Addison Wesley, 2005.
[4] Sun Microsystems, MID Profile 1.0, http:// java.sun.com/javame/reference/apis/jsr037/.
[5] Apple, iOS Reference Library, iOS Technology Overview, http://developer.apple.com/devcenter/ ios.
[6] Apple, iOS Reference Library, Cocoa Fundamentals Guide, http://developer.apple.com/devcenter/ios.
[7] Goole, Android, http://code.google.com/intl/ ko/android/.
[8] Microsoft, Windows Mobile MSDN, http:// msdn.microsoft.com/en-us/library/bb158486% 28v=MSDN.10% 29.aspx, 2010.
[9] YangSun Lee, YunSik Son, "A Platform Mapping Engine for the WIPI-to-Windows Mobile Contents Converter," Multimedia, Computer Graphics and Broadcasting,  CCIS(Communications in Computer and Information Science) 262, Springer, pp.69-78 Dec 2011. 
[10] YangSun Lee, Yunsik Son, "A Study on the WIPI-to-Windows Mobile Game Contents Converter using a Resource Converter and a Platform Mapping Engine," Advanced Science Letters, Vol.5, American Scientific Publishers, to be published, 2012. 
[11] YangSun Lee, Yunsik Son, "The Source Translator of the WIPI-to-Android Mobile Game Converter," Advanced Science Letters, Vol.5, American Scientific Publishers, to be published, 2012. 
[10] 박상훈, 권혁주, 김영근, 이양선, "모바일 게임 콘텐츠를 위한 GVM-to-WIPI 자동 변환기의 설계 및 구현," 한국정보처리학회 게임 논문지, 제3권, 제2호, pp.51-60, December, 2006.
[12] 이양선, "모바일 콘텐츠의 자동변환을 위한 GNEX C-to-WIPI Java 변환기의 설계 및 구현," 한국멀티미디어학회 논문지, Vol.13, No.4, pp.609-617, Apr 2010.
[13] 손윤식, 오세만, 이양선, "소스 레벨 콘텐츠 변환기를 이용한 GNEX C-to-Android Java 변환기의 설계 및 구현," 한국멀티미디어학회 논문지, Vol.13, No.7, pp.1051-1061, Jul 2010.
[14] 김재성, 최효준, 이양선, "스마트폰 게임 콘텐츠를 위한 GNEX-to-iPhone 변환기의 설계 및 구현," 한국멀티미디어학회 논문지, Vol.14, No.5, May 2011.
[15] 오세만, 이양선, 고광만, "임베디드 시스템을 위한 가상기계의 설계 및 구현," 한국멀티미디어학회 논문지, Vol.8, No.9, pp.1282-1291, Sep 2005.
[16] 이 양선?김 재성?김 명진, "모바일 콘텐츠 자동변환기를 위한 콘텐츠 분석기와 리소스 변환기 개발," 한국멀티미디어학회 논문지, Vol.14, No.5, pp.681-690, May 2011.
[17] 이 양선, "스마트폰 플랫폼을 위한 모바일 콘텐츠 자동변환기," 한국멀티미디어학회 학회지, Vol.15, No.1, pp.54-73, Mar 2011.
[18] 오세만, 이양선, 고광만, "임베디드 시스템을 위한 가상기계의 설계 및 구현," 한국멀티미디어학회 논문지, Vol.8, No.9, pp.1282-1291, Sep 2005.
[19] 이양선, 임베디드 시스템을 위한 ANSI C 컴파일러 개발, 서경대학교 산학협력단, 2005.
[20] 이양선, 임베디드 시스템을 위한 기상기계코드 기반의 C++ 컴파일러 개발, 서경대학교 산학협력단, 2006.
[21] 이양선, iDTV를 위한 자바 컴파일러와 디버깅 도구 개발, 산업기술평가원, 2006-2008.
[22] 이양선, 스마트폰 플랫폼을 위한 모바일 콘텐츠 자동 변환기 시스템의 설계 및 구현, 한국연구재단, 2010-2015.