'Device API'에 해당되는 글 1건

  1. 2010.03.20 디바이스와의 대화 (1)

오래전 부터 많은 컴퓨터 과학자들이 상상했던 것중에 하나가 인공지능이다. 생각하고 판단하는 능력을 갖춘 로봇들이 인간과 함께 생활하는 것은 이제 공상과학 영화에서는 흔히 볼 수 있는 장면이 되었다. 물론, 실제 현실에서는 아직도 해결해야 할 일들이 많은 것도 사실이다. 하지만 곰곰히 생각해 보면 별도의 인공지능이 없다하더라도 우리의 경험과 지능을 디바이스에 넣는 것은 너무도 당연한 현실이 되어 가고 있다.

과거 통신업자들이 독점하고 있던 핸드폰 디바이스와 시장이 공개되면서 많은 사람들은 아이폰 SDK와 안드로이드 SDK 등을 이용하며 자신의 경험과 아이디어를 프로그램화하여 무료로 공유되며 판매하고 있다. 하드웨어 측면에서 디바이스의 기능들이 계속해서 진화하겠지만 이보다 더 많은 다수 개발자들이 집단 지성을 통해 더 많은 것을 발전할 것은 분명하다.

모바일 디바이스를 둘러싸고 벌어지고 있는 이러한 움직임은 단순히 핸드폰을 넘어 모든 디바이스 분야로 급속히 확산되고 있다. 브로드 밴드의 확산과 클라우드를 기반으로 한 수준 높은 응용 서비스 그리고 트윗이나 페이스북, 포스퀘어(Foursquare) 처럼 실시간으로 원하는 정보를 교환하고 관련 정보를 의사결정에 참고하는 상황이 스마트폰 사용자에게 보편화되어 가고 있다. 실제 최근 들어 , 필자는 특정 장소에서 음식점을 찾을 때 맛집을 소개하는 포탈 컨텐트 보다 포스퀘어(Foursquare)등의 GPS 기반 쇼셜 서비스를 이용하여 주변에서 지인들이 추천해준 맛집을 선택한다. 아직까지 메뉴 선택 후 실패한 적이 없었던 것 같다.

이러한 추세를 반영하듯 기존 디바이스들에 유.무선 네트웍 기능의 포함이 확산되고 있다. 실제 대부분의 프리미엄급 TV들과 셋탑 박스, 카메라, 세탁기 , 네비게이션, 프린터 등이 네트웍 기능을 내장하고 있다. 또한 이러한 디바이스간의 네트웍 기능을 통해 연결된 장치들간의 컨버전스 서비스의 상품화가 본격화되고 있다.

이달 초 두바이에서 열렸던 테크에드 중동(TechEd Middle East) 컨퍼런스에서 MS는 윈도우 7과 윈도우 폰, 그리고 Xbox 간에  컨버전스 데모를 보여 주었다. 윈도우 7 PC상에서 하던 게임을 윈도우 폰에서 그리고 다시 그대로 Xbox에서 이어서 수행하는 3스크린간의 이동을 보여주었다. 데모이긴 하지만 그간 디바이스간 컨버전스 서비스의 대명사 였던 3 Screen 서비스를 실체화 함으로써 MS에서 추진하고자 하는 전략이 윈도우 OS 기반 디바이스들간의 서비스 컨버전스임이 분명해 졌다.

MS뿐 만 아니라 올해 안으로 애플 역시 스크린과 네트웍이 내장된 애플 TV를 선보이고 애플 제품들 간의 컨버전시 서비스와 제품을 개발할 것이라는 것이 유력하다. 이미 애플은 네트웍 가능한 장치들간의 연결을 위한 자사의 Air Port 서비스를 기반으로 한 네트웍 백업 및 스토리지 장비인 타입캡슐을 판매하고 있으며 , 이들 장치상에 아이튠을 통해 다양한 컨텐트 컨버전스 서비스를 제공할 것으로 예상된다.
 
이러한 컨버전스 시장을 더욱 가속화 시킬 것으로 예상되는 것이 바로 안드로이드이다. 기능적인 면에서 안드로이드는 안정적인 커널과 멀티태스킹 , 그리고 오픈소스라는 장점으로 인해 현재  핸드폰을 필두로 셋탑 박스 , 카메라 , 세탁기에 이르기까지 다양한 디바이스에 포팅이 되고 있다. 실제 최근 들어 구글은 소니, 인텔 등과 구글 TV 개발을 본격화 하면서 이러한 움직임을 주도하기 시작했다. 

특히, 이들 안드로이드 기반 디바이스들은 구글이 보유한 다양한 서비스 클라우드와 연결될 것이기 때문에 사용자는 구글 광고를 보는 대신 보다 저렴하거나 심지어 무료로 디바이스를 이용하게 될 수 도 있을 것이다. 또한 안드로이드 SDK로 개발된 수 많은 어플리케이션을  사용할 수 있기 때문에 가전제품 생산업체들의 독점적인 위치 또한 향후 달라질 수 있을 것이다.  개인적으로는 이러한 상황을 미리 준비하지 못한다면 삼성전자를 비롯해 LG 전자 , 소니 등 대다수의 CE ( Consumer Electronics ) 회사들은 다시 한번 큰 어려움을 겪을 것이라 생각한다.

이렇듯 현 시점은 시장적인 측면에서 디바이스 기능의 그 자체의 차별화에서 디바이스 서비스 차별화로 이전되고 있는 상황이라 할 수 있다. 다시 말해 , 기존에는 제품의 디자인과 색상, 카메라 화소 등 디바이스의 기능으로 제품을 차별화를 했다면 현재에는 트위터 , 페이스북 연동 등 주요 쇼셜 네트웍 지원 , 다양한 포탈 지원 , 다양한 어플리케이션 등이 차별화된 요소로 부각되고 있다.

이러한 서비스의 차별화를 위해 모든 디바이스들이 네트웍에 연결되고 있다. 그러나 이들 디바이스들이 네트웍에 연결된다고 해서 웹에 연결되는 것이 아니다. 이 둘 간에는 분명한 차이가 있다. 네트웍에 연결되는 것은 물리적인 연결상의 노드가 증가한다는 것을 말하는 것이다. 이에 반해,  웹에 연결된다는 것은 하나의 독립된 웹 서비스 주체로서 외부의 요청에 따라 자신의 서비스와 정보를 웹을 통해 제공하며 필요한 정보를 제공받으며 대화하는 것이다. 이를 통해 진정한 웹의 일부가 되고 웹의 규모를 증대시켜 주는 것이다.

디바이스들이 웹의 일부가 된다면 어떻게 될까? 필자의 견해로는 디바이스와 사용자간의 대화를 가능하게 하며 이를 통해 디바이스를 스마트하게 할 수 있다.  제조회사들이 초기 디바이스들에 부여한 기본 기능외에 사용자의 상황과 환경에 맞는 지능을 부여하여 맞춤형으로 사용할 수 있게 되는 것이다.

현재까지 이러한 것을 가능하게 하는 대표적인 노력이 바로 W3C 의 Device API 표준화이다. 카메라 , 캘런다 등 주요한 디바이스의 기능을 표준 API로 정의하고 표준 웹 개발 언어(Javascript, CSS, HTML) 를 사용하여 새로운 응용 프로그램의 개발을 가능하게 해주는 것이다. 표준화 측면에서 아직까지는 갈 길이 멀긴하지만 의미있는 작업임은 분명하다.

실제  W3C Device API의 스펙과 진행 방안을 보면 실제 안드로이드 플랫폼보다는 크롬 OS가 보다 디바이스 플랫폼에 적합하다고 할 수 있다. 왜냐하면 안드로이드의 경우 내부에서 응용 프로그램의 수행을 위한 런타임 엔진으로 달빅 VM 과 자바 개발 언어를 기본으로 사용하는 데 반해 , 크롬 OS는 HTML5기반의 웹 브라우져를 내부에서 사용하기 때문에 자바스크립트 라이브러리인 Device API를 사용하기에 보다 적합하다.

이러한 추세에 따라 현재 자바스크립트로 개발된 응용 프로그램을 멀티디바이스상에서 구동가능하게 해주는 크로스 플랫폼 솔루션으로 PhoneGap, Titanium, Rhodes 등이 꾸준히 그 세를 넓혀가고 있으며 , 다른 한편으로 자바 오픈 소스를 활용하여 다양한 디바이스들에 안드로이드를 탑재하는 노력도 함께 진행되고 있다.

이처럼 디바이스들을 웹화 시키려는 노력들은 크게 안드로이드나 크롬OS 처럼 각각의 디바이스에 웹의 기능을 추가하거나 , 또는 각 디바이스들에게 웹의 기능을 부여하는 미들웨어(허브)를 통한 방법으로 구분해 볼 수 있다.  전자의 경우 디바이스의 하드웨어적인 제약(메모리,CPU 성능, 비디오 카드 등)으로 인해 실제 구현이 불가능하거나 많은 제약을 받는다. 실제 냉장고나 청소기 등에 웹 서버와 브라우져를 넣는 것은 쉽지 않은 도전이 될 것이다. 이에 반해 허브를 통한 방법은 무척 현실적이다. 허브에서 웹의 서비스를 처리하고 디바이스는 허브에서 지시한 기존의 기능을 충실히 수행하면 되기 때문이다.

웹에서 허브는 개별 웹 서버(노드)들의 링크가 모이는 곳이며 허브를 통해 노드들은 의사 결정과 판단에 필요한 정보를 제공받는다. 실제 , 쇼셜 네트웍에서 허브는 유력한 빅마우스(Big mouth)들이라 할 수 있다. 빅마우스들은 다른 쇼셜 네트웍들의 판단에 많은 영향을 준다. 이처럼 웹의 기본 원리를 생각하면 디바이스의 웹화를 위한 허브는 아주 현명한 방법이다.

이렇듯 웹을 통해 소통하는 능력을 갖게 된 디바이스는 비로서 자신의 소유주와의 대화를 할 수 있으며 이를 통해 새로운 행동을 배울 수 있다. 디바이스가 어떻게 사용자와 대화를 하고 새로운 서비스와 행동을 배우고 생각할 수 있는 지 생각해 보자.

사용자와 개발자는 디바이스에서 제공하는 API를 사용하여 자바 스크립트로 새로운 응용 프로그램을 개발할 수 있다. 이렇게 개발된 응용 프로그램은 스토아를 통해 무료로 공유되거나 판매될 수도 있다.  가령, 자동 청소기를 생각해 보자. 일반적으로 스마트 청소기로 알려진 이 디바이스는 미리 정해진 모드와 대처 규칙에 의해 자동으로 환경을 감지하고 청소를 수행한다. 그런데 이 청소기의 제조 업체는 이 디바이스를 제어할 수 있는 Device API를 제공하고 있다.  자바 스크립트 등을 이용하여 웹 프로그램을 할 수 있는 A씨는 스마트 청소기를 한대 구매하였다. 이를 구매하여 이용하던 중 A씨는 항상 퇴근 전에 자동으로 청소기기를 구동시켜 청결한 상태에서 퇴근 후 귀가를 하고 싶었다. 따라서 A씨는 청소기의 Device API를 사용하여 트윗 서비스를 통해 청소기에게 구동 명령을 내리고 이를 받은 청소기는 집안 청소를 시작하고 완료 후 이를 다시 트위터를 통해 보고하는 기능을 개발하였다. A씨는 개발된 응용 프로그램을 청소기에 설치하고 이를 다시 스토아에 무료로 올려 다른 사람들에게도 공유하였다. 또한 해당 소스코드는 오픈소스로 공개하였다.

이처럼 기존의 웹 서비스를 통하거나 또는 직접 디바이스에게 새로운 기능과 서비스를 추가할 수 있게 된다는 것은 기존 수동적인 디바이스를 스마트하게 만드는 것이다. 이를 통해 , 전혀 기대하지 못했던 새로운 서비스와 기능, 용도, Life style 등이 나타나게 될 것이다. 가령, 트윗의 실시간 검색을 통해 현재 중계 방송중인 야구경기에 대한 시청 소감과 관련 정보 등을 정체하여 실제 TV에서 이를 함께 보여줄 수도 있을 것이며 , 평상시에는 쓸모없이 구석에 넣어둔 디지탈 카메라를 문앞에 설치한 후 실시간에 핸드폰을 통해 카메라에 찍힌 모습을 모니터링할 수 도 있을 것이다.

비록 아이로봇 영화에 나오는 것처럼 사람처럼 생각하는 인공지능은 아니지만 이제 머지않아 우리는 웹을 통해 디바이스와 대화를 하고 , 디바이스에 새로운 기능(지능)을 추가할 수 있게 될 것이다.  핸드폰에  수십 만 개의 신규 응용 프로그램을 추가하듯이 우리는 기존 다비이스에 수 십만 아니 수 백만 개의 기능을 추가할 수 있게 될 것이다. 이 때 , 기존의 CE 시장은 또 한번의 위기와 기회를 맞게 될 것이다. 이는 먼 미래가 아니라 바로 내일의 모습이다.

본 글은 ZDNet 컬럼에 기고한 글 입니다.

Posted by 박재현

댓글을 달아 주세요

  1. Favicon of http://hackperl.tistory.com BlogIcon 전창민 2010.03.23 13:25  댓글주소  수정/삭제  댓글쓰기

    인공지능까지는 아니지만 그래도 디바이스와의 대화가 가능하게 하는 채널이 다양하게 제공된다는게 매력적이네요.