팀 버너스리, 위기의 W3C 구하기 (2)

이제 제2 웹 브라우저 전쟁이 도래하기 시작했다. 1차 웹 브라우저 전쟁이 벤더간 싸움이었다면 이번에는 ‘표준안’의 대결이 될 것으로 예측된다. W3C의 힘이 예전 같지 않고, 파이어폭스와 오페라는 구글이라는 원군을 얻었다. MS는 IE7으로 이제 막 이 전쟁에 뛰어들 준비를 갖추었다. MS는 몇 년간 이 분야에 손을 놓고 있었기 때문에 아직 감이 없다.

문제는 사용자 경험을 증대해 주는 웹 표준은 성공할 확률이 높다는 사실이다. 미래의 웹 표준이 어떻게 흘러갈지는 모른다. 그러나, TBL이 HTML 그룹 재생성이라는 강수를 두게 한 WHATWG의 활동에 대해 좀 더 자세히 알아볼 필요가 있을 것이다.

개방적인 표준 그룹, WHATWG
WHATWG 활동의 가장 큰 특징은 토론의 개방성에 있다. 누구나 표준 스펙에 대해 이야기할 수 있고 제안할 수 있다. 메일링리스트는 공개되어 있고 누구나 가입해서 이야기할 수 있다.  이 그룹을 이끄는 사람은 넷스케이프와 오페라를 거쳐 지금 구글에 있는 이안 힉슨(Ian Hickson)으로 약관 28살이다. (그는 2000년 부터 W3C의 전문가로서 CSS 표준화에 참여해 왔다.)

나도 1998년 웹 코리아가 W3C에 가입하면서 1년 동안 W3C의 SVG 그룹에서 활동한 적이 있다. 당시 W3C는 몇 안되는 회원사끼리 활발하고 자유로운 토론이 가능했었다. 웹을 사랑하는 사람들이 표준을 만드는 일에 동참했다. 젊은 웹 개척자들이 닷컴붐을 따라 산업계로 뛰어 들었고 업체들은 W3C에 기꺼이 돈을 냈다. 그러나 지금의 W3C는 회원사가 아니면 표준화 작업 참여가 거의 불가능하다. (요즘은 조금 완화돼서 메일링리스트 가입은 가능하지만…)

WHWTWG의 개방성에 감명을 받은 것은 몇달 전 Firefox의 DOM Storage를 실험하다가 Web Application 1.0 스펙의 샘플 코드가 틀렸다는 사실을 알고 메일링 리스트에 전하자 마자, Ian이 스펙을 고쳤다는 것을 알려주었을 때였다. (내 이름을 초안에 넣어주기 까지 했다.) W3C에서는 거의 불가능 할 것이다. 그렇다고 WHATWG가 무책임하고 가벼운 프로세스를 가지고 있다는 것은 아니다. 철저한 토론을 위주로한 결론을 도출하고 있다.

(X)HTML5, 그 정체는?
HTML5에 대한 많은 사람들의 오해는 XHTML로 전환되는 상태에서 왜 과거로의 회귀냐는 것이다. HTML5는 과거로의 회귀가 아니다. HTML5에서 제안된 기능들은 XHTML1.0과 2.0에서도 똑같이 적용될 수 있는 것들이다. 다만, 웹 브라우저와 웹 사이트들의 하위 호환성 확보를 위해 HTML 스펙 위에 넣은 것 뿐이다. 이것은 이안 힉슨도 이미 언급한 바 있다.

HTML5에서 추가되는 스펙은 온전한 웹 어플리케이션 즉, 서버가 없더라도 자체적으로 동작할 수 있는 서비스 어플리케이션을 위한 기능들이 많다. 예를 들어, Web Form에 추가된 것들을 보면 input  상자에 포함된 time, meter, email 같은 type이 있으며 이를 validity를 체크 하도록 하는 속성들이 들어가 있다. 내부 스크립트에서 보다 쉽게 유효성 확인을 하자는 측면에서 추가된 것들이다.

현재 진행 중인 Web Application 스펙에서는 구식 HTML4.01의 렌더링 엔진에서 웹 브라우저들 사이에 DOM 접근 버그들을 고치는 스펙을 먼저 제공한다. 그리고 HTML에서도 의미적 구조화가 실현될 수 있도록 기존 HTML 태그들을 모두 손봤다. 특히, <header>, <footer>, <nav> 같은 태그가 신설되었고, 참조를 위한 <x> 그리고 시간과 숫자를 위한 <t>, <meter> 같은 의미 태그들도 추가되었다. 업계 표준으로 쓰이고 있는 <embed>도 다시 등장했고 <canvas>도 당당히 이름을 올렸다.

그 무엇보다 브라우저 자체에서 웹 어플리케이션이 구동될 수 있도록 하는 다양한 스펙들이 추가된 것이 중요하다. <table>만큼 레이아웃을 만들면서도 빠르게  렌더링하고 정보를 입출력할 수 있는 <datagrid>가 추가된 거나, 오프라인 상태에서도 기능 구동이 가능하도록 브라우저 내에 자체 기능인 클라이언트 세션 및 저장 기능(Client-side session and persistent storage)에 대한 스펙도 중요한 추가 사항이다. 또한, 편집 가능한 테이블, 실행 기록 보관, 드래그앤 드롭 등은 어플리케이션 구동에  필수 요소로 생각되어 추가했다. 네트웍 커넥션을 자유롭게 사용할 수 있는 옵션도 포함되어 있다.

HTML5는 문서 구조로서 웹에서 탈피
HTML5의 목적은 문서 형식으로 만들어진 웹 표준 구도를 벗어 나기 위한 두번째 시도이다. W3C는 문서형 정보 전달이라는 웹의 구조에서 탈피하는 것을 꺼려 왔지만 결국 이것은 시대적인 요구가 되었다. 기왕 해야 된다면 정보의 접근성 및 호환성은 유지하면서 어플리케이션 기능을 제공할 수 있는 보다 확장된 표준이 필요하다는 것에 모두 공감하게 되었다.

사실 웹 표준 분야의 가장 취약점이라고 한다면 역시 동적 문서와 행동(Behavior)에 대한 제어 부분이다. DOM과 Script 언어들이 있지만 이를 완전히 분리한다는 것은 쉬운 일이 아닌것이다. HTML5 확장은 기존의 문제점을 해결 하고 새로운 모델을 준다는 점에서 주목할 만 하다. 팀 버너스리는 그의 블로그에서 WHATWG의 스펙들을 언급하면서 이에 대한 수용의 가능성을 열어 놓았다고 볼 수 있다.

오픈 소스와 MVC 모델, 빠른 개발을 위한 프레임웍의 출현 등으로 서버 기반 프로그래밍은 매우 발전해 왔다. 이와 반대로 클라이언트 기반 프로그래밍은 HTML과 자바 스크립트의 단순 기능 구현으로 잡지 수준의 UI 혹은 UX 정도의 기능만 하고 있는 것이 현실이다. HTML5의 출현은 이런 웹을 좀 더 동적으로 만들면서도 그동안 발전을 저해 당했던 클라이언트 기반 개발자들에게 새로운 비전을 열어 줄 것으로 보인다.

여러분의 생각

  1. “MS는 몇 년간 이 분야에 손을 놓고 있었기 때문에 아직 감이 없다.”
    라는 문장에서 저도모르게 웃음이ㅎㅎㅎ.

의견 쓰기

이름* 이메일* 홈페이지(선택)