본문 바로가기

2013
마이크로소프트웨어

글: 김형훈 | asinayo73@hotmail.com / 2013년 6월호


<COVER STORY 1>

현업에서 바라보는 크로스플랫폼

크로스플랫폼 개발의 의미와 현주소

2007년 7월 29일 iOS가 처음 출시되고 이어서 2008년 9월 23일 안드로이드가 등장하면서 전 세계 많은 사용자들의 삶이 바뀌었다. 다양한 종류, 높은 품질의 애플리케이션이 사용자들에게 공급되기 시작했고, 이를 앱 마켓에서 다운로드해 사용할 수 있게 되면서 삶의 편리함이 증폭됐다. 하지만 개발자의 입장은 조금 달랐다. HW/SW 플랫폼이 점점 늘어날수록 개발자가 구현한 솔루션은 모든 플랫폼을 지원해야 할 필요성이 커졌고, 이에 따라 각 플랫폼의 특성을 맞추기 위해 많은 노력이 요구됐다. 이 글에서는 이러한 수고를 줄이기 위한 또 하나의 노력인 크로스플랫폼에 대해 알아보고 개발 시 어떻게 활용될 수 있는지를 간략하게 설명한다.



스마트폰 플랫폼의 등장은 앱의 손쉬운 개발을 가능하게 했으며, 스마트폰 앱 시장의 폭발적인 성장을 가져왔다. 지금은 대다수의 사람들이 쉽게 사용하는 스마트폰 플랫폼 중 하나인 안드로이드의 역사는 릴리즈를 기준으로 따지면 공식적으로 2008년도에 시작됐지만, 꼼꼼히 따져보면 좀더 오래 전으로 돌아갈 수 있다. 

2005년 7월에 구글은 미국 캘리포니아 주의 팔로알토에 위치한 작은 안드로이드 사를 인수했다. 2007년 11월 5일에 텍사스 인스트루먼트, 브로드컴 코퍼레이션, 구글, HTC, 인텔, LG전자, 마벨 테크놀로지 그룹, 모토로라, 엔비디아, 퀄컴, 삼성전자, 스프린트 넥스텔, T-모바일의 몇몇 회사로 구성된 컨소시엄인 오픈 핸드셋 얼라이언스(OHA)가 모바일 기기의 공개 표준을 개발하는 것을 목표로 결성됐다. 또한 OHA는 리눅스 커널 2.6에서 빌드된 그들의 첫 번째 모바일 기기 플랫폼 결과물인 안드로이드를 발표했다. 그리고 2008년 10월 21일에 안드로이드가 오픈소스로 선언됐다. 구글은 네트워크와 텔레폰 스택을 포함하는 완전한 소스 코드를 아파치 라이선스로 공개했다.

 

플랫폼의 다변화
안드로이드 플랫폼은 그 점유율이 늘어나는 동안 꾸준히 기기와 OS 파편화 문제로 인한 앱 성능과 사용 편의성을 취약점으로 지적받아왔다. 안드로이드와 더불어 iOS, 윈도우8 등 다양한 스마트폰 플랫폼의 경쟁은 점차적으로 심화되다가, 최근에는 양강 체제로 거의 굳어진 추세다. 하지만 어느 플랫폼이 소비자에게 주력 플랫폼이 될지는 어느 누구도 아직 확신할 수는 없다.

 


<그림 1> 2010~2012년의 각 플랫폼 점유율(출처 : IDC)

 

마이크로소프트는 윈도우폰7.5와 윈도우폰8 개발자에게 손짓해 경쟁력 있는 앱을 만들도록 격려하면서 삼성전자, 엘지전자 등 다수의 세계적인 제조 파트너들을 통해 성능을 차등화한 여러 단말기를 내놓고 유럽 등 유수의 지역별 통신사를 통해 출시하는 노력을 기울이고 있다. 블랙베리 단말기에는 임베디드 유닉스 계열인 QNX 기반의 블랙베리10 OS가 탑재돼 있고 기존 안드로이드 개발자들이 그 앱을 쉽게 이식할 수 있도록 개발됐다. 

플랫폼 전쟁에 최근에는 우분투 모바일 버전이 가세했고 파이어폭스 플랫폼도 참여해 점점 더 치열해지고 있는 추세다. 또한 기존의 제조사 위주의 플랫폼 경쟁에 소프트웨어 기술을 가진 기업들도 참여하는 경향을 나타내고 있다.

 


<그림 2> 모바일용 우분투(좌)와 파이어폭스OS(우)

 

이처럼 많은 플랫폼이 출시되면서 개발자들에게는 앱 개발에 대한 부담이 커졌으며 앱 제작 회사 및 개발자들에게 플랫폼 의존도를 낮추고 다양한 플랫폼을 동시에 지원할 수 있는 개발 방법이 필요하게 됐다. 이에 따라 한 번의 개발로 여러 플랫폼을 지원할 수 있도록 하는 크로스플랫폼 기술은 스마트폰에서도 관심이 높아지고 있으며 복잡한 양상으로 진화하고 있다.

 

크로스플랫폼의 정의
크로스플랫폼은 <그림 3>과 같이 소프트웨어나 하드웨어 등이 다른 환경의 운영체계(OS)에서 공통으로 사용되는 것을 의미한다. 예를 들면 1개 기종의 하드웨어가 모바일 컴퓨팅 디바이스 또는 개인용 컴퓨터에서 사용되거나, 유닉스 시스템이나 윈도우, 맥OS, 리눅스 등의 여러 가지 복수 환경에서 사용되는 것을 의미한다.

 


<그림 3> 크로스플랫폼의 정의

 

모바일용 플랫폼이 다양화되는 현재의 흐름과 더불어서, 하나의 스크린을 다른 스크린과 연계하려는 전략인 N스크린 서비스 제공도 증가됨에 따라 크로스플랫폼은 개발자에게 있어서는 중요한 고려 대상으로 자리매김했다.

 

N스크린

N스크린은 하나의 콘텐츠를 스마트폰ㆍPCㆍ스마트TVㆍ태블릿PCㆍ자동차 등 다양한 디지털 정보기기에서 공유할 수 있는 차세대 컴퓨팅ㆍ네트워크 서비스를 말한다. 이는 시간ㆍ장소ㆍ디지털 기기에 구애 없이 언제 어디서나 하나의 콘텐츠를 이어서 볼 수 있어, 컴퓨터로 다운로드한 영화를 TV로 보다가 택시 안에서 이어서 태블릿PC으로 시청할 수 있는 서비스다. N스크린 서비스는 통신, 방송 및 콘텐츠 사업자 모두 관심을 가지고 접근하는 분야로, 주요 사업자들은 각사의 핵심 역량을 극대화하는 방향으로 N스크린에 접근하고 있다.

 


<그림 4> N스크린 개념(출처 : 삼성 Tomorrow)

 

서비스 플랫폼이 등장하면서, N스크린 환경은 콘텐츠산업 가치사슬을 수직구조에서 수평구조로 전환시켰다. 그리고 콘텐츠와 소비자 간의 인터페이스를 담당하던 플랫폼이 네트워크에 의존성을 가졌지만, N스크린 환경으로 네트워크의 영향력이 감소하면서 플랫폼의 위상을 강화해 특정 네트워크에 따라 콘텐츠/서비스가 제약됐던 것을 플랫폼이 독자적으로 콘텐츠를 소비자에게 제공할 수 있게 됐다.

 

요즘과 같이 다양한 제품이 쏟아지는 상황에서 하나의 플랫폼으로 N스크린을 구성하는 모든 이기종 디바이스들을 완벽히 지원한다는 것은 완전히 불가능해 보인다. 대부분의 경우 개발하는 데 필요한 다양한 자원 문제로 인해 원하지는 않지만, 특정 플랫폼만 지원하는 서비스가 될 수 있다. 여러 개의 스크린에서 동일한 서비스를 제공하려는 시도에선 이렇게 특정 플랫폼만 지원하려는 것이 아니라, 표준화시켜 표준 기술을 만들고 그 결과를 사용하도록 한다. N스크린 시대가 더욱 더 빨리 다가오게 할 수 있는 기술 중 하나를 꼽자면 HTML 5 웹 기술을 생각할 수 있다. HTML은 웹 표준 기술이기 때문에 어느 플랫폼에서든지 사용할 수 있는 접근성 높은 서비스를 구축할 수 있다. 

크로스플랫폼 전략을 잘 세우고 이행하는 대표적인 예를 찾아보면, 온·오프라인 동영상(온라인 스트리밍, 메일을 통한 DVD 대여) 서비스 제공기업인 넷플릭스(Netflix)를 들 수 있다. 이 회사는 크로스플랫폼 전략을 취해, 온라인 스트리밍 서비스 제공뿐 아니라 아이패드용 앱을 출시하고 게임콘솔, 셋톱박스 등에 OTT 방식으로 탑재되는 등 동일한 서비스를 다양한 하드웨어를 사용하는 단말기에 제공하고 있다. OTT(Over-the-Top)는 개방된 범용 인터넷을 통해 방송프로그램, 영화 등의 동영상을 전달하는 인터넷 동영상 서비스다.

 


<그림 5> 넷플릭스의 크로스플랫폼 적용



<그림 6> MultiPlay.io의 크로스플랫폼 지원

 

지금까지 설명한 사례 이외에 게임 업계에서도 크로스플랫폼을 지원하려는 많은 노력이 이뤄지고 있다. 예를 들어, MultiPlay.io는 다양한 모바일 및 웹 재생 장치에서 플레이어가 실행하는 대로 게임을 편집하고 제공하는 기능을 갖춘 실시간 크로스플랫폼 기반 게임 플랫폼이다. 게임 플랫폼에서도 게임 플레이와 관련된 여러 가지 동기화를 처리하기 위해 데이터 저장소를 필요로 하며, 저장소로 프로젝트의 시작부터 MongoDB를 사용했다. 그리고 실시간 게임 분석, 게임의 리플레이, 3D 자산 및 텍스처 변경을 지원한다. MultiPlay.io에서는 신속한 크로스플랫폼 프로토타이핑 환경 구축을 지원한다.

 

다양한 크로스플랫폼 지원 도구들
크로스플랫폼을 사용하는 개발자들을 원활히 지원하기 위해 많은 도구가 출시되고 있다. 하나의 플랫폼을 사용해 여러 개의 이기종 단말기에 쉽게 적용할 수 있다면 얼마나 유용하겠는가. 대표적으로 사용되는 상위 10개 도구를 정리하면 <그림 7>과 같다. 영광의 1위를 차지한 것은 폰갭이며, 2위는 센차터치/jQTouch, 3위는 Mono였다. 이러한 순위가 나타난 배경으로 각각의 도구가 개발자가 사용하는 플랫폼을 지원하는 것이 가장 비중 있게 꼽혔고, 가격이나 추가적인 비용이 없다는 점과 개발 프로세스가 빠르다는 점도 큰 몫을 차지했다. 배우기 쉽다는 점도 무시할 수 없는 포인트였으며, 리치 UI 제공도 중요한 이유 중 하나였다.

 


<그림 7> 크로스플랫폼용 도구 사용 현황

 

크로스플랫폼 개발을 위해 필요한 것들 가운데 가장 눈에 띄는 것은 하나의 중심 개발 환경을 사용해 멀티 타겟 플랫폼에 사용할 각 바이너리가 만들어지는 것이다. 그리고 한 군데에서 앱, 디바이스, 보안 프로파일이 관리될 수 있으며, 새로운 앱이나 업데이트가 있을 때 배포하기 쉬워야 한다. 이러한 기능이 지원됨으로써 다양한 하드웨어를 대상으로 하더라도 크로스플랫폼 모바일 앱을 개발할 때 속도를 가속화해 경쟁력을 유지할 수 있다. 개발 플랫폼으로서 하나만 가지고 있더라도 여러 가지 타겟을 대상으로 앱 개발 전체 사이클을 유지할 수 있어서 매우 편리해진다. 이와 같은 전반적인 관리를 수행하기 위한 솔루션으로 Metaquake의 AppFresh가 있다. 


<그림 8> Metaquake의 AppFresh

 

많은 애플리케이션 중에서 크로스플랫폼을 대상으로 개발된 것으로 데이터베이스 솔루션을 들 수 있다. 모바일 기기에서 사용되는 데이터베이스 관리 시스템으로는 다양한 솔루션이 있지만, 그 중에서 대표적인 것이 SQLite이다. SQLite는 많은 안드로이드폰이나 애플의 아이폰 등에서 사용되는 데이터베이스 솔루션으로서 사용자 측면과 관리자 측면에서 모두 뛰어난 접근성을 가지고 있는 데이터베이스 관리 시스템이다. SQLite를 사용하는 대표적인 플랫폼은 iOS와 안드로이드가 있지만, 이 솔루션은 사실 PC용으로 개발됐다. 그리고 모바일 기반의 플랫폼 중 리눅스를 지원하는 경우에는 모두 쉽게 적용할 수 있다. 현재 iOS와 안드로이드 둘 다 기본적인 데이터베이스 솔루션으로 SQLite를 선택하고 있다.

 


<그림 9>  iOS & SQLite

 

오라클 데이터베이스 솔루션은 많은 플랫폼을 대상으로 제공된다. 윈도우, 리눅스, 솔라리스, HP-UX, IBM AIX를 포함하는 플랫폼들이 이에 해당되며, 계속해서 변경되는 기능 및 수정사항들을 반영하기 위해 지속적인 노력을 기울이고 있다. 오라클의 크로스플랫폼 개발 시나리오는 <그림 10>과 같이 이뤄진다. 개발이 이뤄지는 단계가 존재하고, 그 결과를 적용하는 단계로 구분돼 진행된다. 


<그림 10> 오라클의 크로스플랫폼 개발 진행

 

생활을 윤택하게 하기 위한 많은 기업과 연구소들의 노력으로 삶의 편의를 높이는 여러 가지 디바이스들이 개발됐다. 대표적인 것이 스마트폰과 같은 스마트 디바이스들인데, 각 기업들의 기본 방침에 의해 만들어지다 보니 다양한 형태의 하드웨어와 소프트웨어를 사용하게 돼 크로스플랫폼을 구성하게 됐다.

앞서 살펴본 것처럼 크로스플랫폼을 기반으로 제품을 개발하기 위해서는 많은 노력이 필요하다. 그런 만큼 이번 기회를 통해 기본적인 내용을 명확하게 이해하고 한걸음 앞으로 더 쉽게 나아갈 수 있길 바란다.

 

[참고자료]
1. http://metaquark.de/appfresh/mobile
2. http://www.visionmobile.com/blog/2012/02/crossplatformtools/
3. http://www.sqlite.org
4. http://docs.oracle.com/cd/E28280_01/bi.1111/b32121/pbr_xplat003.htm
5. http://gigaom.com/2010/01/14/does-cross-platform-support-impact-your-mobile-software-usage/



/필/자/소/개/

김형훈asinayo73@hotmail.com

모바일 디바이스의 설계부터 테스팅까지 모든 부분에 관심이 많으며, 현재 모바일 디바이스 설계/성능과 관련된 엔지니어링 업무를 맡고 있다. 다양한 형태의 모바일 디바이스의 구성요소가 어떻게 하면 각각 최적의 성능을 낼 수 있는지에 대해 연구하고 있다.




※ 본 내용은 (주)마소인터렉티브(http://www.imaso.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.
    Copyright ⓒ Maso Interactive Corp. 무단전재 및 재배포 금지

맨 위로
맨 위로