페이지

2008년 2월 3일 일요일

웹 브라우저에서 네이티브 인터페이스 지원하기

카메라(Camera) 영상이 표시되는 브라우저.

GPS수신기를 이용하여 구글맵(Google Map)에 위치를 표시할 수 있는 브라우저.

아웃룩에 저장되어 있는 일정을 표시하고 웹기반 주소록과 동기화해주는 브라우저.

물론 ActiveX 콘트롤이나 파이어폭스 (Firefox) 확장을 설치하면 뭔들 불가능하겠습니까? 하지만 이제 표준화된 인터페이스를 통해 현실화되고 있는 기능입니다.

이미 우리는 XMLHttpRequest 인터페이스를 통해 변화하는 웹을 경험했습니다. 하지만 이 기능이 처음 등장한 것은1999년  IE5.0이 출시될 때였습니다. 이후, 파이어폭스가 같은 인터페이스를 지원하고 구글맵에서 사용되기 전까지 잘 활용되지 못했습니다. 여기서 우리가 깨달은 것은 어느 한 브라우저만이 자신들만의 확장 기술로 이러한 인터페이스를 구현해서는 안된다는 것입니다.

실험적인 시도는 어떤 브라우저에서도 가능하겠지만, 표준화를 염두하지 않는다면 기술의 확산과 사용에 혼란을 줄 수 밖에 없습니다. 그런 사실을 누구보다 잘 알고있는 브라우저 업체들은 WHATWG를 만들어 더 나은 웹 환경을 만들기 위해 표준화에 앞장서고 있습니다.

Supporting Native Interfaces on the Web

그러면,네이티브 인터페이스(Native Interface)가 무엇이고 이를 지원하기 위해 어떤 움직임이 있는 알아보도록 하겠습니다.

네이티브 인터페이스란, 하드웨어 또는 특정 다른 애플리케이션의 고유 기능을 웹브라우저에서 접근할 수 있도록 표준화한 것을 말합니다. 개발자는 HTML 태그 또는 자바스크립트 개체 형태로 사용이 가능합니다. 그리고 앞서 잠깐 소개했듯이, 다음과 같이 크게 두가지로 형태로 구분할 수 있습니다.

  • 하드웨어 네이티브 인터페이스 : 하드웨어 고유 기능을 DOM 레벨에서 사용할 수 있도록 인터페이스화 한 것

  • 애플리케이션 네이티브 인터페이스: 디바이스에 내장된 특정 애플리케이션 또는 미들웨어의 기능을 DOM 레벨에서 사용할 수 있도록 인터페이스화 한 것


하드웨어 네이티브 인터페이스 경우, 앞서 언급한 GPS, 카메라와 함께 iPhone에서 보여준 사파리(Safari)에서 전화거는 기능이 대표적인 예라고 할 수 있겠습니다. 또한, 파이어폭스에서 GPS 수신기와 연동하는 기능을 구현한 확장이 이미 공개되어 있습니다.

애플리케이션 네이티브 인터페이스 경우, 로컬 주소록이나 일정을 관리하는 미들웨어의 기능을 브라우저 인터페이스로 노출하여 웹애플이케이션이 이를 사용하여 웹페이지에 데이터를 표시하거나 서버에 전달할 수 있도록 합니다. Remember the Milk라는 할 일 관리 서비스에서도 볼 수 있듯이 현재 이런 기능은 전용 애플리케이션으로 구현하고 있습니다모질라에서도 Mozila2 플랫폼을 통해 디바이스의 로컬 일정과 주소록을 동기화하는 부분도 구현중에 있습니다. 물론 이 부분이 파이어폭스에서도 사용될 수 있으나, 보안 문제 등 해결할 문제도 많은 것 같습니다.

또한 HTML5의 <video>태그도 애플리케이션 네이티브 인터페이스 중 하나라고 생각할 수 있습니다. 시스템에 설치된 코텍(codec)을 브라우저 표준 인터페이스를 통해 사용하게 되어 모든 비디오 포맷을 동일한 방법으로 사용할 수 있는 길이 열린 것이지요. 또한 지금까지 플러그인(plug-in)을 통해 구현했던 비디오 출력 기능은 다른 윈도우에 그려졌기 때문에 웹브라우저에서 이를 제어할 수단이 많지 않았습니다. 하지만 <video>태그를 통해 웹페이지가 렌더링되는 같은 메모리 공간(surface)에 비디오가 출력되어 서로 합성이 가능해졌습니다. 이 결과 canvas나 SVG를 이용하여 비디오에 다양한 효과를 줄 수 있게 되었습니다. 이미 이미 오페라(Opera)(와 모질라(Mozilla)에서 이를 구현한 결과를 공개하였습니다.앞으로 웹을 통한 새로운 시도가 계속 될 것이며, 이런 발전을 통해 우리가 웹2.0에서 경험한 그 이상의 혜택을 받게 될 것입니다. 단, 이 모든 것은 표준화와 함께해야하며 특정 벤더가 독점해서는 안되겠습니다.

댓글 없음:

댓글 쓰기