블라디미르의 제안서는 단순한 기술 명세가 아니었다. 그것은 웹의 미래에 대한 그의 비전과 철학이 담긴 선언문과도 같았다. 그는 ‘Canvas 3D’라는 이름을 넘어, 자신의 아이디어를 관통하는 핵심 가치를 전면에 내세웠다. 바로 ‘표준(Standard)’이었다.
왜 표준이 그토록 중요한가?
그것은 웹의 존재 이유와 직결되는 문제였다.
90년대 말, 웹의 여명기를 기억하는 개발자들에게는 잊을 수 없는 악몽이 있었다. ‘브라우저 전쟁(Browser Wars)’이라 불리던 시대. 당시 웹 시장을 양분하던 넷스케이프 내비게이터와 마이크로소프트 인터넷 익스플로러는 서로 시장을 장악하기 위해 독자적인 기능들을 마구 쏟아냈다.
넷스케이프에서만 동작하는 <blink>
태그, 인터넷 익스플로러에서만 보이는 <marquee>
태그. 이뿐만이 아니었다. 자바스크립트로 웹페이지의 요소를 제어하는 방식(DOM API)마저 서로 달랐다.
그 결과, 개발자들은 지옥을 맛봐야 했다.
하나의 웹사이트를 만들기 위해, 그들은 넷스케이프용 코드와 인터넷 익스플로러용 코드를 따로 작성해야 했다. 코드는 분기문으로 누더기가 되었다.
if (isNetscape) { ... } else if (isInternetExplorer) { ... }
똑같은 기능을 구현하기 위해 두 배, 세 배의 노력을 쏟아야 했고, 유지보수는 끔찍했다. 사용자들은 ‘이 사이트는 넷스케이프에 최적화되어 있습니다’ 같은 굴욕적인 문구를 봐야만 했다. 웹은 통일된 정보의 바다가 아니라, 서로 다른 섬들의 집합으로 쪼개질 위기에 처했다.
이 혼돈을 끝낸 것이 바로 월드 와이드 웹 컨소시엄(W3C)과 같은 표준화 기구들이 제정한 ‘웹 표준’이었다. 모든 브라우저가 HTML, CSS, 자바스크립트의 동일한 규칙을 따르도록 약속한 것이다. 이 약속 덕분에 개발자들은 비로소 브라우저의 차이를 크게 신경 쓰지 않고 코드를 작성할 수 있게 되었고, 사용자들은 어떤 브라우저를 쓰든 동일한 웹 경험을 누릴 수 있게 되었다.
블라디미르는 3D 그래픽이라는 새로운 영역에서 과거의 비극이 되풀이되는 것을 막아야 한다고 생각했다.
구글의 O3D는 그 자체로 훌륭한 기술이었지만, ‘플러그인’이라는 형태는 과거의 망령을 불러올 수 있었다. 만약 O3D가 널리 퍼진다면, 그것은 사실상 구글 크롬만의 ‘비표준 3D 기능’이 될 가능성이 높았다. 다른 브라우저들이 이를 그대로 따라 할 의무도, 이유도 없었다. 결국 개발자들은 ‘O3D용 3D 웹’과 ‘그 외 브라우저용 2D 웹’을 따로 만들어야 할지도 모른다.
블라디미르의 접근 방식은 근본적으로 달랐다.
그는 자신의 ‘Canvas 3D’를 모질라 파이어폭스만의 독점 기술로 만들 생각이 추호도 없었다. 처음부터 이것을 모든 브라우저가 함께 구현하고 따를 수 있는 ‘공개된 표준’으로 만들고자 했다.
HTML의 <canvas>
태그 위에, 모든 브라우저가 동의할 수 있는 최소한의 3D 명령어 집합(API)을 정의하는 것.
마치 모든 브라우저가 <p>
태그를 문단으로 인식하는 것처럼, 모든 브라우저가 gl.drawArrays()
라는 명령을 ‘점들을 그려라’는 의미로 똑같이 해석하게 만드는 것이다.
그렇게만 된다면, 개발자는 한 번의 3D 코드 작성으로 파이어폭스, 크롬, 사파리, 오페라 어디에서든 동일하게 동작하는 입체적인 웹을 만들 수 있다. 이것이야말로 웹의 정신에 부합하는 진정한 진보였다.
블라디미르는 키보드를 두드렸다. 그의 제안서는 이제 기술적 구현 방식을 넘어, 왜 ‘표준 기반의 네이티브 3D’가 ‘플러그인 기반의 3D’보다 우월한지에 대한 당위성을 역설하고 있었다.
그는 하나의 회사가 주도하는 기술이 아니라, 모든 이해 당사자가 모여 함께 만들어가는 기술을 꿈꿨다. 그리고 그 꿈을 실현시켜 줄 수 있는 유일한 장소가 있다는 것을 알고 있었다.
기술의 신들이 모여 인류가 사용할 다음 세대의 표준을 결정하는 곳.
바로 ‘크로노스 그룹(Khronos Group)’이었다.
그는 자신의 제안서를 들고, 그 신들의 회의장을 찾아가 문을 두드릴 준비를 하고 있었다. 그것은 모질라의 한 개발자가 아닌, ‘열린 웹’이라는 가치를 지키려는 수호자로서의 출사표였다.