개발자들은 계속해서 웹 브라우저에서 가능한 범위를 깨려고 하는 것 같습니다. 최근 새로나온 이 놀라온 WebGL 데모들은 웹에서 가능한 것이 정말 무엇인지를 잘 보여주는 것 같습니다.
첫번째는 three.js 를 사용한 AlteredQualia의 이 인상적인 동적 지형 렌더링 데모입니다. 두번째 데모는 프랑스의 웹 디자인 대행사인 Ultranoir의 Nouvelle Vague 입니다. 이 데모는 개개의 트윗들을 엮어서 3D로 보여줍니다. Mr.doob의 이 데모는 kinect로 캡쳐한 데이터를 three.js를 사용하여 랜더링하여 보여줍니다. 또한 three.js를 사용한 One Millionth Tower 데모는 Canadian National Film 위원회가 만든 다큐멘터리 입니다. 마지막으로 WebView 핵을 사용해서 아이패드 2에서 돌아가게 만든 이것들을 한번 보세요.
다른 소식으로는 구글 데이터 아트 팀이 워크샵 페이지를 런칭하고 그들이 만든 놀라운 데모의 기술들을 공유했다는 소식입니다. 이 페이지는 멋진 dat.GUI를 사용한 튜토리얼들이 있습니다. 한번 확인해 보세요!
HTML5는 아직 개발중인 기술입니다. 우리는 이 무르익는 기술의 진보된 역량을 확인해 보기로 하였습니다. 게임과 같은 곳에 쓰여진 것을 말이죠. HTML5는 아직 초창기에 불과하지만, 이미 html5로써의 통합은 시작되었습니다. 여기 HTML5로 잘 만들어진 6개의 게임을 소개합니다.
여러분이 인터넷을 사용하지 않거나 불구한 곳에 있더라도 아마 한번쯤은 이 WebGL 로 만들어진 퀘이크2 포트에 대해 들어보셨을 것입니다. HTML5요소들과 Canvas API 를 사용하였고, 몇명의 구글 직원들이 만들었습니다. 아마 이게 브라우저에서 HTML5로 동작하는 게임 중에 가장 베스트가 아닐까 싶습니다.이를 플레이하기 위해서는 먼저빌드 과정이 필요합니다.(Java로 만들어져서)
최근 인터넷 익스플로러 9의 등장으로 다시 한번 HTML5가 주목받고 있다. 익스플로러 9의 등장과 웹 표준을 정말 정확히 준수한다는 점은 극히 칭찬할 만 하며, 특히 엑티브 엑스에 대해 속도가 느려짐을 경고하며 자사의 엑티브 엑스를 최소화 하고 표준에 중점을 두려 하고 있다. 타 브라우저와 마찬가지로 기존의 IE의 점유율만 믿고 행세하는 것이 아닌 html5 및 각종 스크립트 등의 처리에 있어서 처리 속도의 증가를 내세우고 특히나 자사가 HTML5를 최대로 활용할 수 있다고 강조한 점 등. 물론 아직까진 IE가 단지 윈도우에서밖에 돌아가지 않는다는 점은 아직 완벽한 오픈이라고 볼 수는 없지만, 유럽 시장에서 이미 파폭과 크롬 등의 타 브라우저가 50% 이상을 넘어선 것에 대해 IE 역시 대세를 준수하고 W3C의 권고안을 준수하는 등의 많은 노력을 보인 것으로 확인된다.
2008년 말부터 시작된 국내 웹 표준에 대한 전쟁(?)에 이어 지금의 브라우저 시장은 갑작스런 모바일의 등장으로 2010년 초는 모바일 웹의 관심사의 증폭이었다. 하지만 모바일 웹 보다 솔직히 개발자들에게 더 크게 와닿은 것은 다름아닌 앱(App)개발 이었다.
안드로이드나 아이폰 개발을 하며 대박을 냈다는 사람들이 몇 몇 보이면서, 집에서도 쉽게 소호 형식으로 개발해서 앱스토어에 올리면 7:3의 짭짤한 배분률로 $0.99 가격만 해도 한 천명이 구입하면 $990 달러 아닌가. 환산하면 대충 백만원. 실제로 이런 사람이 있긴 하겠지만 정말 그 수 많은 앱스토어 사이에서 그렇게 주목받기가 쉬운가?
사실 앱스토어 자체에는 정말 다양한 경우의 수가 존재하고 특히 앱이라는 자체가 모바일로 돌아가기 때문에 스마트폰을 활용하는 사람들의 생활 패턴이나 그들의 소비 습관, 그리고 그들이 분포하고 있는 사회의 영역이라든가. 하물며 현재 앱스토어에 나와 있는 인기 유/무료 어플들도 비교분석 해야 하는 등등 말이다.
나 역시도 아이폰 안드로이드 관련 책만 한 10여권은 구매했다. 단지 대세에 휘몰려서 말이다. 허나, 기존에 웹이나 SI나 개발하던 사람이 갑자기 모바일로 넘어오면 물론 C와 OOP 에 대한 기본이 잘 잡혀있는 사람이야 몰라도 사실 코코아 기반의 프로그래밍을 이해하는 데에는 상당 시간이 걸린다. 특히나 아이폰 프로그래밍 자체의 고유의 디자인 패턴을 이해하지 못하면 역시나 장벽이 높아지고.. 이런 식으로 개발 진입장벽이 높다는 것이다. 물론, xcode라는 툴이나 안드로이드의 SDK 및 이클립스 등은 잘 만들어져 있지만 말이다.
그리고 이러한 앱 시장은 판도가 너무 빨리 바뀌어 버려서 적응하기도 힘들 뿐더라 솔직한 심정으로 당황할 수도 있다. 이미 개발자의 수요는 폭등하고 있고 언제 어디서 내가 생각한 어플이 심지어 무료로 더 화려한 디자인으로 나올 지 모른다. 소비자는 내 어플을 보고 욕을 할 수도 있고, 환불을 요청할 수도 있다.
무엇보다 애플의 아이폰 자체의 수요에 대한 생각을 해보자. 하나의 스마트 디스플레이로선 크게 성공하긴 했다. 아이폰 4나 아이패드도 상당한 성공을 거두었고 앞으로도 계속 성공을 해 나갈 것이다. 애플이 첨단의 선두를 달리고 있는 한, 그리고 그들의 고유한 시스템을 가지고 있고 계속 진보해 나가는 한 말이다. 하지만 후발주자들은 가만히 있는가?
내 개인적인 생각으론 애플은 처음부터 화려한 UI로 승부수를 걸었다만, 사실 속도에 있어서(프로세스 속도) MS를 따라잡기 힘들었고, GUI를 처리하는 속도 역시 MS가 앞지를 수 있었다. 허나, 애플은 포기하지 않고 비록 막장으로 흘러가더라도 자사의 매킨토시 OS를 계속 발전시켜 나갔고 맥을 토대로 스티브 잡스가 경영선에 복귀했을 때에 헐리우드에서 배운 일종의 디자인 스킬(?)을 산업디자인과 UI/UX디자인에 집중하기 시작했다. 아 물론, 이를 제대로 처리하기 위해 개발자들의 노고도 상당했겠지만 말이다. 그렇게 디자인적인 성공을 거두고 그들의 기술력을 점차 임베디드로 포팅하기 시작. 지금의 iOS와 아이패드 OS에 이르기까지.
애플 장비의 발전사.
복합적인 요소로 애플은 성공할 수 있었고, 안드로이드 역시(역사를 잘 몰라 거론하지 않은 것은 미안하지만) 현재로썬 성공적인 시장 진입과 위치 확보라고 할 수 있다.
하지만 타 OS들이 가만히 있겠는가? OS만 따져서 보면 삼성의 바다OS, 심바인, 블랙베리, 윈도우폰 등등. 지금 그들은 애플을 정말 뼈속까지도 발라보면서 벤치마킹 하고 있다. 그리고, 그들의 OS가 최고로 도약할 수 있도록 정말 엄청나다 할 정도로 개발자에 대한 투자 및 디바이스에 대한 투자, 첨단 기술에 대한 연구를 진행하고 있다.
OS와 디바이스와 함께 한 가지 더 발전하는 것이 있다. 바로 네트워크 망이다. 3G망과 Wi-Fi망이 우리나라 국내만 봐도 솔직히 요즘 와이파이 안잡히는 곳이 없다. TV에서도 올레KT존이니 티와이파이존이니 뭐 엄청난 선전을 때리고 심지어는 3G도 요즘 무제한이 되지 않았는가? 정말 우리나라 이동통신으로 치면 엄청난 발전인데, 해외라고 그렇지 않겠는가.(난 사실 이제 이통사가 뭐 먹고 사나 싶기도 하다. 전화고 머시기고 다 무료화 될텐데 흠.. 오로지 데이터 사용만 부과?)
내가 여기서 말하고자 하는 것은 결국 이 시장 판도가 앱(App)에서 웹(Web)으로 돌아올 가능성이 높다는 것이다. 특히나 모바일 웹 브라우저에서(특히 아이폰용 사파리) HTML5를 철저하게 지원하면서 기존의 플러그인이 없으면 단지 텍스트+이미지로 이루어진 웹이 아닌 구조화되고 flexible하고 다이나믹한, 웹 앱스(Web Apps)가 앱의 시장을 넘어설 것이라고 생각하고 있다. 어차피 미래의 어플은 무료 시대이고 진정 핵심기술에 대한 부과나 아니면 광고가 대세가 될 것이다. 세계 최고의 IT기업 중 하나인 구글이 왜 광고로만 먹고 사려고 하는 것이겠는가?
웹의 기본은 오픈이다. 그동안은 Active X 나 서드파티 등으로 데이터를 제공하는 공급업체들은 자신들의 데이터를 숨기려고 노력했으나, 이제는 그렇지 않다. 웹은 오른쪽 버튼을 눌러서 소스를 볼 수 있는 거의 완벽한 오픈 체제로 돌아설 것이다. 컴파일을 통해 배포하는 형식의 기존의 소프트웨어를 한번에 깰 것이다. 사람들은 점점 무료를 원하고 있고, 오픈을 원하고 있다.
하지만 HTML5가 과연 얼마나 어디까지 발전할지는 사실 미지수이다. 그리고, 이러한 오픈 정책이 정말 열심히 공부해서 컴포넌트를 만들어 놓은 사람들에게는 득이 될지 해가 될지도 미지수이다. 물론, 웹이 존재하는 한 Server-Side 기술이 없어지지는 않겠지만 웹을 통한 오프라인 기술 및 클라이언트 의존적 기술을 제공하기 위해서는 공개 정책을 펼쳐야 한다는 점이다.
하지만 한 가지 확실한 것은, 앱이나 소프트웨어처럼 플렛폼 마다, 기술마다 다 다른 툴과 언어를 사용하지 않고 크로스 브라우징과 플렛폼을 제공하면서 언어의 통일까지 가능한 HTML5는 점점 우리 실상에 다가오고 있다는 것이고, 분명 그 영향력은 엄청날 것이란 것이다. 이에 대한 기회의 장/단점에 대한 판단은 음 글쎄.. 이 글을 읽는 개개인에게 맡기겠다. 참고로 필자는 html5를 잠깐 맛보기를 해 봤는데 뭐 거의 혁명 수준이라 생각하고 지금 살짝 미쳐있는 실태이다.(-_-)
근래들어 참 바쁜 생활을 보냈다. 다름 아닌 FLEX와의 때아닌 자존심 대결 이라는 개발자로썬 기쁜(?) 대결을 하게 되었기 때문이다.
나는 딱히 어떤 개발자라 정해져 있지는 않지만, 그렇다고 많은 기술을 접한 것은 아니다. 기껏해야 자바 기반 웹 에이전시에 잠시 투입되고 지금 유지보수를 하면서 이것 저것 혼자서 Open Source를 투입해 보면서 배우는게 있지만 그렇다고 내가 자바에 정통한 전문가는 아니라는 것이다.
바로 이전 포스팅에서 나는 2010 대한민국 매쉬업 경진대회에 나갔다고 밝힌 적이 있다. 사실 작년에 이 대회에서 나는 여자친구와 만나서 지금으로 이어지게 되어서 이 대회는 우리에게는 뜻깊은 대회인 것이다. 그런데, 올해 4번째를 맞이하는 이 대회를 보면서, 나는 또 한번의 트랜드에 대한 변화를 느끼게 되었다.
매쉬업은 무엇인가? 네이버 검색이나 다음 지도 등 소위 말하는 Portal들에서 서비스하는 기술을 API(Application Program Interface, 응용 프로그램 인터페이스) 형식으로 제공하는 것을 Open API라고 하며, 이러한 Open API들이 합쳐져서 새로운 서비스를 창출하는 것을 매쉬업(Mash-Up) 이라고 한다.
이미 포탈 사이트에서는 다양한 API를 지원하고 있다. 검색은 기본이고 지도 서비스에서부터 각종 컨텐츠들, 날씨 정보, SNS 등등 예전처럼 더 이상 개발을 할 때 컨텐츠 혹은 대규모 때문에 구현 불가능한 것은 없다는 것을 의미한다.
작년에는 내가 병특을 가기 전이라 이것 저것 접하던 도중, 그나마 C#과 Visual Studio라는 툴에 익숙해서 친구의 도움을 받아서 WPF로 개발을 했었는데 확실히 그 프로그램은 허접 그 자체였다. 그나마 UI나 디자인에 조금 신경을 썼다 할지라도 그건 좀 아니었다. 제대로된 기획도 없었고, 매쉬업의 개념 조차 제대로 살리지 못했다.
이번에 내가 개발을 한 기간은 총 1주일. 신청은 2달 전에 해 놓고는 왜 그랬는가? 회사일도 바뻤지만 사실 나의 실력에 대한 과대한 신뢰 때문이었다. "까짓꺼 Flex정도야~? " 라고 자만하면서 정작 나는 개발 보다는 절반 가량은 UML과 시스템 설계, 기획 및 디자인 때문에 고민을 한 것 같다. 아이디어 조차도 감을 잡지 못하다가 미국에 있는 여자친구의 도움으로 겨우 기획안을 구체화 시켜서 진행해 나갈 정도였으니 말이다.
그래서 저번 주말(16,17일)에 Adobe Flex Bible이라는 책으로 내내 공부를 하고 Flex에 대해 눈을 좀 뜨기 시작했다. 언어는 언듯 자바 언어인 듯 싶으면서도 Action Script가 혼합되어 있는 구조에, 클래스와 객체에 대해서는 기존 자바의 개념과 거의 일치하므로 그렇게 어렵지는 않았다.
다만 RIA에 대한 구조, 물론 작년에 배운 WPF와 거의 흡사했지만 Flex만의 구조가 있었고 다양한 컨트롤들을 이해하고 내가 원하는 UI를 뽑아내는 데에 수 많은 시행착오를 겪은 것 같다.
플랙스를 실제로 해 보니 내가 이건 정말 좋다고 느낀 것은 다음과 같다.
다른 것보다 내가 "아 이런 기능을 어떻게 구현해 놓은 Sample이 없을까?" 라는 생각을 했을 때 구글 서칭을 통해 외국 사이트에서 공유해 놓은 수 많은 라이브러리 파일을 찾을 수 있었다. 구글 AJAX API는 스크립트 단에서 작동을 해서 이것을 FLEX로 끌어두기가 힘들었는데, 이미 사람들은 이러한 기능을 다 구현해서 라이브러리로 올려두었다. 그리고 나는 손쉽게 구글의 날씨나 번역 서비스를 이용할 수 있던 것이다.(다만,Crossdomain 설정에 막혀서 Air로 급 전향하긴 했지만)
이외에도 국내 영문 지도가 필요했는데, Google Maps나 Yahoo Maps는 국내 상세 지도를 전혀 지원하지 않아서(심지어 서울은 달랑 Seoul로 표기된다.) 겨우 찾다 보니 MS의 Bing Maps가 있었다.
허나, 알다시피 MS는 자체적인 SDK로 지원하기 유명하다. 그러다 보니 아무리 찾아도 Flex에 이를 어떻게 적용해야지? 하고 있었는데 그것도 구현해 놓은 곳이 있었다. UMap이라고, afcomponents.com 라는 곳에서 제공하고 있던 것이다.
Flex는 그 사용이 쉬울 뿐만 아니라 Flex Builder는 또한 쉬운 저작환경을 자랑한다. 물론, Eclipse기반의 IDE이긴 하지만 Design을 하는 데에는 정말 편했다. 그리고 다양하고 쉽게 스킨을 변경할 수 있도록 CSS를 제공하는데, 물론 이는 다른 RIA도 마찬가지이지만 웹상에 공개된 깔끔한 CSS 스킨이 여러 종류 있었다.(http://www.scalenine.com/gallery/index.php) 따라서 나는 이를 이용해서 어렵지 않게 스킨을 변경할 수 있었다.
그리고 지원하는 정말 엄청난 Component 및 모듈을 지원하는데, 이 부분은 Tour de FLEX라는 것을 한번 보면 된다.(http://www.adobe.com/devnet/flex/tourdeflex/web/#) 뭐 웬만한 모듈들은 다 나와있다고 봐도 과언이 아닌데, 예를 들어 닷넷에서 사용되는 차트는 대부분 유료 모듈로 국내에 지원된다.(히포 차트 같은.) 그런 차트 같은건 이미 Flex에 기본 컴포넌트로 들어 있어서 쉽게 사용할 수 있다. 라이센스 제약도 없으니 더더욱 좋지 않은가?
이외에도 IBM이 참여한 뛰어난 분석 모듈이나, 각종 해외 Open API에 대한 모듈들, Visualization관련 모듈 등 수없이 많으니 한번쯤 Tour de FLEX를 쭉~ 살펴보는 것도 왜 플랙스를 해야 하는지에 대한 이해를 도울 수 있을 것이다.
그리고 내가 개인적으로 Flex에 가장 깊게 느끼는 것은 다른 것보다 그 광범위한 수요층 때문이다. 요즘 Flash 안깔린 컴퓨터가 있던가? 그리고, 요즘 국내 자바 시장 하면 UI는 Flex로 점점 그 수요가 높아져 가고 있다. 물론, 아직 SI가 수용하기엔 무겁지 않나 싶은데 그 부분은 시간이 해결해 줄 것 같고.
무엇보다 나의 관심사는 3D이다. 나는 참고로 UI와 UX에 대해서도 많은 관심이 있는데, 사실 플랙스에 가장 끌린 것은 무엇보다 쉽고 깔끔한 UI구성으로 쉬운 UX의 창출이 가능할 것이라는 점이다. 그리고 이제 2D 인터페이스의 시대는 곧 사라질 것이다. 게임처럼, 우리의 UI도 3DUI의 시대가 올 것이라고 조심스래 전망하고 있다.
WebGL이라고 들어봤는가? OpenGL 프로젝트가 웹으로 플랫폼을 옮기면서 WebGL이라는 것이 조금씩 나오고 있다. 이미 아이폰 3GS 안에도 OpenGL ES가 탑재되어서 3D 게임이 제작되고 있다. 웹에서 이제 3D가 나오려면 어떻게 해야 하겠는가? 당연지사 RIA 플랫폼이 주축이 될 것이다. 그리고 점차 Adobe는 CS4에서 3D를 지원하면서(3D MAX와 흡사한 모습에 사뭇 놀란 기억이 있다.) 이 기술을 이어서 RIA 까지 가져갈 것으로 전망한다.
이제 3D 게임을 플래쉬 안에서 볼 날도 멀지 않았다. 정말 웹의 확장이란 너무나도 무섭고도 거대한 것 같다. 그 속에서 살아남으려면? 빠르게 기술을 접하고 자신의 기술에 접목시키는 것만이 살 길이다. 때문에 내가 택한 이 Flex라는 또 하나의 길. 물론, 내가 Flex에만 올인한다는 것은 아니지만, 앞으로 내가 다양하게 쌓아올릴 스킬들과 융합되어 멋진 서비스가 창출되기를, 나는 내심 바라고 이러한 면을 Flex의 빠르고 넓은 진보 과정에서 바라보고 나아갔으면 좋겠다는 생각을 한다.
댓글을 달아 주세요