You are here: Home - Studies∞ - OpenKODE에 대하여

0905121114

OpenKODE에 대하여

1. KHRONOS Group이란?

여러분은 Khronos Group에 대해서 들어 본 적이 있습니까? Khronos Group은 2000년 1월에 3Dlabs, ATI, Intel, NVIDIA, SUN등의 회사들이 주축이 되어 만든 컨소시엄입니다. 2009년 현재에는 이름만 대면 누구나 알 수 있는 세계적인 기업들은 거의 대부분 참여하고 있습니다. 단말기 제조사(삼성, 노키아, 모토로라, 소니 에릭슨, LG 등)과 칩 제조사(Intel, AMD, ARM 등), 유명 통신사, 잘 나가는 IT기업(Apple, Google 등)까지 Mobile 시장에 조금이라도 관여하고 있는 기업들은 모조리 포함되어 있습니다.

크로노스의 창립 목표를 한줄로 요약하자면, ‘다양한 종류의 mobile기기에 최적화된 하나의 공개 표준 API를 만들어 높은 수준의 미디어 출력이 가능하게 해 주는 것’이라고 할 수 있습니다. 여기서의 공개 표준 API는 모두 무료(Royalty Free)로 제공된다는 점이 특징입니다. 따라서 어떠한 기업이나 개인도 마음껏 사용이 가능합니다.

크로노스는 이 표준 API를 사용하여 현재 모바일 시장 진입의 큰 문제점인 모바일 미디어의 단편화 현상(Mobile Media Fragmentation)을 극복하고자 합니다. 모바일 미디어의 단편화 현상이란, 각 단말기마다 다른 OS를 사용하기 때문에 생기는 문제입니다. 현재 ISV(Independent Software Vendor)들이 모바일 시장에 제품을 출시하기 위해서는 한 개의 타이틀을 수많은 OS에 맞게끔 porting하는 무의미한 작업을 반복해야 합니다. 이미 시장에 나와 있는 OS만 해도 심비안, Brew, 윈도우 모바일, MAC OS X, WIPI, Android, Limo, Java MIDP 등 엄청난 숫자입니다. 따라서 특정 플랫폼에 종속되지 않는 표준 API가 존재한다면 각 OS별로 같은 프로그램을 다시 만들 필요 없이, 디바이스에 구애받지 않고 손쉽게 프로그램을 작성할 수 있습니다.

또한 Handheld Device가 가지는 그래픽의 한계를 극복하고 더 높은 수준의 서비스를 제공하자는 목표도 가지고 있습니다. 지금까지의 휴대폰이 저수준의 그래픽 가속까지만 지원할 수 있었다면, 앞으로는 휴대폰에서도 PC와 같은 수준의 하드웨어 그래픽 가속을 가능하게 하겠다는 것입니다. 이는 특히 게임 분야에 많은 영향을 끼칠 것이고, Media contents, 웹 서비스 등에도 많은 변화가 있을 것입니다. 크로노스는 이 같은 일들이 가능하도록 휴대기기 하드웨어의 performance를 최대한으로 이끌어 낼 수 있는 API를 제작하고 있습니다.

따라서 크로노스가 기대하는 것은, 만일 이러한 표준 API가 성공적으로 정착된다면 ISV와 하드웨어 제조사 모두가 Win-Win할 수 있다는 점입니다. 크로노스에서는 이를 Media Ecosystem이라고 표현합니다. 소프트웨어 제작의 진입장벽이 낮아지면 소프트웨어 제조사가 이익이고, 사용자는 양질의 컨텐츠를 더 쉽게 제공받을 수 있으며, 양질의 컨텐츠가 늘어나면 이는 곧 하드웨어(모바일 단말기)의 판매를 증가시킬 것입니다. (모든 일들이 잘 풀린다는 가정 하에)

2. Khronos가 개발중인 API

크로노스의 Mobile API는 3D그래픽용 API인 OpenGL|ES, Vector 2D그래픽용 API인 OpenVG, Video같은 Streaming Media용 OpenMAX, 사운드를 담당하는 API인 OpenSL|ES의 총 4가지 API로 구성되어 있습니다. 여기에 이 4 종류의 API를 추상화시킨 인터페이스인 EGL이 있고, 이 모든 API는 OS Abstraction API인 OpenKODE로 Wrapping됩니다. 따라서 소프트웨어를 제작하는 입장에서는 OpenKODE로 다양한 Open계열의 미디어 API를 사용하여 프로그램을 작성할 경우, 각 OS의 이식성에 대해서는 신경쓰지 않고 만들 수 있습니다.

OpenKODE란 위에서 설명한 것처럼 2D그래픽, 3D그래픽, 사운드 라이브러리들을 Wrapping하여 OS에 독립적으로 추상화시킨 API입니다. OpenKODE의 가장 큰 특징은 C언어의 구조를 그대로 가져왔다는 점입니다. 흔히 ANSI-C에서 사용하는 문법을 그대로 쓸 수 있습니다만, C표준 라이브러리의 함수들을 그대로 사용할 수는 없습니다. (printf나 fopen같은) 대신에 OpenKODE는 기본형 데이터 타입과 C함수들을 KD라는 Prefix를 붙여서 바꿔 놓았습니다. 그래서 Thread함수, Math함수, Timer함수, Network함수, 입/출력 함수, String함수 등 많은 기존의 함수들 이름 앞에 KD만 붙이면 거의 같은 문법으로 사용이 가능합니다.

이와 같은 특징의 가장 큰 장점이라면, 역시 C라는 언어가 프로그래머들에게 상당히 친숙한 언어이기 때문에 진입 장벽이 그만큼 낮아진다는 점입니다. 또한 자바 같은 VM을 사용하는 언어에 비해 Native한 가속을 지원하기 때문에 속도가 훨씬 빠르고, PC에서 C로 만든 프로그램을 더 쉽게 모바일 환경으로 이식할 수 있다는 점도 장점입니다.

3. 결론

현재 크로노스가 제작중인 대부분의 API들은 아직 완전히 릴리즈되지 않고 적합성 테스트(Conformance Test)를 거치는 중입니다. OpenKODE역시 아직 OpenGL|ES 2.0은 지원하지 않고 있습니다. (2008년 OpenKODE 백서를 참조했습니다. 2009년 2월에 1.0.2 버전이 나왔는데, 현재는 어떤지 잘 모르겠군요)

따라서 크로노스의 표준이 아직까지는 모두 확정되지 않았지만, 표준이 확정되고 크로노스에서 의도한 대로 모든 OS에서의 이식성이 확보된다면, 앞으로 근 몇 년 안에 Mobile시장에 큰 변화를 불러오리라고 생각합니다. 이는 곧 전 세계의 휴대기기 사용자들을 대상으로 한 어마어마한 새로운 시장이 열린다는 이야기와 같습니다. 우리 VisualShower는 항상 이러한 변화를 내다보고 한 발 앞서서 준비하여 큰 기회를 잡아야 할 것입니다.

Leave a Reply

Back to top