Cross Platform Tools
Posted
음.. 작년 이맘때만 하더라도 CPTs에 미쳐있었는데.. 지금은 오히려 부정하는 기술 중 하나다. 아래는 작년에 입사 에세이로 썼었던 글. 다시 읽어보면서 나도 모르게 진행되는 생각의 변화가 두렵기만 하다.
요즈음 다양한 모바일 OS들이 쏟아져 나오면서 여러 운영체제 간의 호환성을 갖춘 소프트웨어 개발이 가능한 크로스 플랫폼 도구 (CPTs; Cross Platform Tools) 가 관심을 받고 있습니다. PC 시대까지만 하더라도 CPTs에 대한 수요는 지금처럼 크지 않았습니다. 왜냐하면, 사용자 대부분이 PC운영체제로 윈도우즈를 사용했기 때문입니다. 당시엔 개발자들이 윈도우즈에만 집중하면 되던 시절이었습니다. 그러나 어느 시대라도 마지막은 존재하듯이 스마트 기기의 출현은 더 이상의 단독 운영체제 시대를 허락하지 않았습니다. 그렇게 새시대를 연 스마트 기기의 첫 발을 내디딘 애플은 정전식 디스플레이와 각종 센서, 그리고 범용 OS와 앱스토어로 스마트폰이라는 새로운 형태의 블루오션을 만들어 냈습니다. 이에 구글은 발 빠르게 대응해 안드로이드 OS를 인수하고 발전시켜 애플 iOS와 구글 안드로이드 2강 체제를 구축하게 되고, 유일하게 iOS에 대응할 수 있는 운영체제가 되었습니다. 하지만 이는 전쟁의 서막에 불과했습니다. 현재 많은 글로벌 기업들은 융복합과 다양한 기기들의 스마트화 바람을 맞이해 새로운 전쟁을 준비하고 있습니다. 그 중 삼성전자의 바다 OS는 HTML5 기반의 여러 디바이스를 타겟으로 하는 타이젠으로 병합해 새로운 진영을 구축하고 있고, 과거의 영광을 꿈꾸는 RIM의 블랙베리, 데스크톱 PC 리눅스의 왕좌인 Ubuntu의 모바일 버전, 웹 브라우저의 강자인 Firefox의 OS화, MS의 Windows 8 Phone 등 결코 만만치 않은 글로벌 기업들이 새로운 생태계의 구축을 꿈꾸고 있습니다. 이렇게 다양한 OS의 등장은 한 번의 개발로 다수 플랫폼에 적용 가능한 CPTs에 대한 개발자들의 수요를 자연스레 증가시키는 결과를 가져오게 되었습니다.
현재까지 이미 나와 있는 CPTs만 해도 100개를 훌쩍 넘어섭니다. 대표적으로 가장 많이 사용되는 PhoneGap이 있고, 그를 따르는 Appcelerator Titanium, Adobe AIR 등이 있습니다. 앞서 언급했듯이, 이미 현존하는 OS들이 너무 많아 한 번의 작성으로 어떤 플랫폼이든 적용할 수 있다는 것은 CPTs의 가장 큰 장점임이 틀림없습니다. 또 100개가 넘는 CPTs는 제각각 다른 특성이 있습니다. 모바일 플랫폼들의 공동구역인 Web 기술을 이용하는 PhoneGap, 간결하고 직관적 작성이 무기인 파이썬을 이용하는 Kivi, 자바의 Tabris, C#의 Xamarin 등 개발자는 그저 자신이 좋아하는 언어를 선택하기만 하면 되니 스마트 기기 앱 개발의 진입 장벽이 낮아져 더 많은 컨텐츠 생산이 가능하다는 장점까지 가지고 있습니다.
이렇게 CPTs가 장점만 가지고 있다면 더 바랄 것도 없을 것입니다. 아쉽게도 장점들을 취하기 위해 어쩔 수 없이 발생하는 단점들 또한 존재합니다. 대표적으로 UI 표현의 정밀도와 런타임 속도가 개발자들의 CPTs 진입을 막는 걸림돌이 되는데, 이 두 문제점을 해결하는 것은 결코 쉬운 문제가 아닙니다. 각각의 운영체제가 가진 유저 인터페이스 표준과 디스플레이 사이즈가 달라 개발자와 디자이너가 원하는 그대로를 표현하는 것은 예전의 PC 시대 플랫폼에서도 쉽게 해결되지 않는 문제였습니다. 시계, 스마트폰, 패블릿, 태블릿, 스마트 TV로 이어지는 다양한 크기의 스크린 기기들이 나오는 지금 이 문제는 예전보다 더 크게 부각이 되고 있습니다. 또한, 현존하는 대부분 운영체제를 지원하려면 CPTs 이용률 1위인 PhoneGap과 같이 운영체제들의 공동구역인 웹을 이용해야 하는데 그렇게 되면 기존의 네이티브로 개발된 앱보다 속도가 느릴 수밖에 없습니다. 이유는 이렇게 개발된 앱들이 브라우저 엔진을 이용해야 하기 때문인데, 하나의 앱 위에서 또 다른 앱이 돌아가면서 발생하는 성능 저하라고 볼 수 있습니다. 그렇다고 성능을 네이티브 앱 수준으로 높이자니, 각기 다른 OS마다 최적화 작업이 필요하므로 다양한 운영체제의 호환이 쉽지 않습니다. 이처럼 CPTs는 아직 해결해야 할 과제들이 많이 남아있습니다.
위에서 살펴본 것처럼 지금 당장은 CPTs가 넘어야 할 산들이 많을지도 모릅니다. 하지만 시간은 CPTs를 둘러싼 환경들을 점점 더 개선해 나갈 것으로 생각합니다. 모바일 기기들의 진화하는 하드웨어의 성능은 기존의 네이티브로 개발된 앱과 CPTs로 만들어진 앱의 속도 차이를 점차 줄여나갈 것이며, 운영체제는 더욱 높은 경쟁력을 위해 CPTs와의 호환성을 고려하여 발전해 나갈 것입니다. 현재 CPTs는 100개 이상의 회사들이 서로 앞다투어 경쟁하고 있습니다. Adobe나 IBM, Motorola와 같은 큰 기업에서는 일찌감치 이 시장에 참여하였고, 최근에는 인텔 또한 appMobi로부터 하이브리드 개발 플랫폼을 인수하게 되었습니다. 이들은 모두 CPTs의 잠재력에 투자하고 있는 것입니다. 저는 삼성전자 또한 그 중 하나라고 생각합니다. 대부분이 바다 OS가 실패한다고 말할 때 삼성전자는 중저가 스마트폰 시장을 타겟으로 Windows Mobile보다 높은 점유율을 기록해 성공한 사례가 있습니다. 지금은 바다를 병합한 타이젠, 그리고 CPTs라 할 수 있는 멀티 디스플레이 플랫폼인 MOVL을 인수하였습니다. 세계 1위의 반도체, 디스플레이, 모바일폰과 같이 삼성전자의 지금과 같은 전방위적인 소프트웨어를 향한 투자는 분명 소프트웨어 또한 선두자리로 이끌 것이라고 확신합니다. CPTs는 분명 이를 이끌어나갈 견인차 구실을 독톡하게 해낼 것입니다.