내가 생각하는 웹표준 기술의 형식
내가 생각하는 웹표준은 지금처럼 물리적인 형태를 선언하는 기능들이 죄다 빠지고, 사이트의 인덱스를 구성하는 부분, 사이트의 내용에 대한 정의를 내리는 부분이 분리되며, 그런 내용들에 대한 선언에 대한 물리적 해석을 브라우저 벤더 자체가 스스로 내리고, 브라우저 벤더의 기본 기능에서 부족한 부분이 있다면 사용자가 스스로 플러그인 설치를 통해 내용의 표현을 바꿀 수 있도록 하는 것이다.
디테일한 부분들 까지는 생각을 안했지만, 대충 이야기 하자면
<site>
<layout>
<layout priority="0" src="flash.swf" />
<layout priority="1" src="mobile.xslt" />
<layout priority="2" src="silverlight.xaml" />
</layout>
<navigate>
<menu title="document a" target="document" src="a.doc" />
<menu>
<menu title="document b" target="document" src="b.doc" />
<menu title="document c" target="document" src="c.doc" />
</menu>
<menu title="document d" target="document" src="d.doc" />
<menu title="video a" target="video" src="a.mp4" />
<menu title="video b" target="video" src="b.mp4" />
</navigate>
<canvas>
<document id="document" />
<video id="video" />
</canvas>
</site>
위와 같은 형태로 navigate 로 사이트의 논리적인 구성을 지정해주고, layout 에는 우선순위를 줘서 각 디바이스 별로 해석 가능한 상황에 맞게 우선순위가 높은 layout 해석기를 선택해 줄 수 있다. 이 상황에서 만일 flash 와 같은 사이트 해석기가 드럽게 만들어졌다면, 사용자는 그냥 다음 순위의 해석기나 아예 브라우저 기본 해석기를 통해서 컨텐츠를 보면 되도록 말이다.
navigate 의 메뉴를 통해서 다른 페이지로 이동을 하던, 아니면, canvas 내부에 있는 컨텐츠 타입들의 내용을 교체하던 할 수 있다.
웹표준이 질적으로 떨어지는 이유는 웹표준 단체 자체가 의무와 책임을 가진 개발사가 아니기 때문이라는 생각이 든다. 웹표준 자체가 마치 모든 것을 통제하겠다는양 자체적으로 기술 개발을 해대고 앉아있는데, 시대의 흐름에 따라가질 못하는 것이 당연하지 않은가...
위와 같은 형태가 되면 보이는 것이 플래시 이더라도 검색 못해서 발발거릴 필요도 없고, 사이트가 기본적으로 플래시로 만들어진다해서 시각 장애인이 못볼 이유도 없다. (그리고, 거꾸로 웹표준으로 만들어진 텍스트를 이미지로 도배를 해버려서 결국 시각장애인에게 접근을 차단시킬 가능성도 크게 줄어들게 된다.) 그러니, tab 질 지원한다고 개발시에 tabIndex 지정하면서 삽질 할 필요도 없고, 사이트가 플랫폼에 맞지 않게 개발되었다고, 아이폰에서 플래시 안된다고 아우성을 쳐댈 필요도 없다. 해석이 안되면 그냥 브라우저의 기본 기능으로 대체해서 보여주면 그만이니깐...
웹표준 단체 역시 단순하게, canvas 내부에 포함 될 컨텐츠 타입에 대한 표준제정만을 하고, 그렇게 내려진 표준안을 브라우저 벤더들이 각자의 형식에 맞게 개발하고, 플래시의 어도비 같은 회사들 역시 표준안으로 내려진 컨텐츠 타입들을 어떻게 해석가능하게 개발언어를 지원해줄 것인지를 고민하면 된다. 웹표준 단체가 세상 돌아가는 상황에 맞게 컨텐츠 타입만을 새롭게 정의내려주면 끝인 것이다. javascript 스펙 만든다고 병신짓 할 필요도 없고, css 스펙 만든다고 병신짓 할 필요도 없다. javascript, html, css 모두 그냥 저 순수한 구조를 해석시키기 위한 1차적 대안으로서의 기술로 다른 개발 플랫폼들과 경쟁할 수도 있다.
imageGallery 라는 컨텐츠 타입이 정의된다면, 어도비가 해당 데이터 모델을 정의할 수 있도록 지원을 해주고, 그 api 를 통해서 만들어진 swf 가 수준이 너무 낮아서 사용자들에게 불편을 준다면, 사용자들은 서비스 제공자가 1순위로 희망하는 형태의 보기를 포기하고, 브라우저 벤더들이 제공하는 기본 기능을 통해서 보면 끝이다. 모두가 해피해 질 수 있다. (서비스 제공자들 역시 자신들의 1순위 형태가 선택되어지기 위해 노력하겠지... 지금처럼 사이트 엉망으로 만들어서 사용자들이 엉엉 울어대며 사이트에 안들어가려고 발버둥 치는 일들 역시 없을 것이다. 이것은 플래시로 보여지는 사이트도, 웹표준으로 만들어진 엉망진창의 사이트도 마찬가지다.)
논리적 형태와 물리적 형태를 모두 웹표준으로 하라고 난리를 쳐대니 웹표준이 발전이 안되는 것이지 않을까... 단순하게 논리적인 형태만을 제공하고, 나머지는 시장에 맡기면 된다.
서비스 제공자 중에서 당췌 이건 데스크탑의 마우스, 키보드, 넓은 모니터, 특정한 해석 플랫폼 없이는 지원이 안되겠다 싶은게 있으면 단순히 에러 메세지 (이건 여기서 볼 수 없어요~) 하나 뿌려주면 그만이다. 게임, 어플리케이션, 혹은 drm 과 같은 보안문제가 애매한 사항들... 도저히 대체 될 수 있을만한 사항들이 아니기에 사용자가 특정 플랫폼에서만 해당 사이트를 보길 원한다면 그렇게 하면 된다.
그리고, 기초적인 해석이 보장되기 때문에 데스크탑용 www.naver.com 만들고, 모바일용 m.naver.com 만들고 난리를 칠 필요도 없다. 단지, 서비스 제공자 자신이 이 플랫폼 형태에서는 이런 모양으로 사이트가 구성되길 원한다 싶은 layout 만을 각각의 형태로 제공해주면 된다. 그러면... 지원시킨 플랫폼에서는 그 모양으로 나올테고, 지원시키지 않은 플랫폼 에서는 브라우저가 알아서 기본 형태로 재생시켜 주겠지.
정 웹표준에서 지원되기 어려운 데이터 타입들이 있다면, custom 으로 선언하고 javascript 를 사용하던 플래시를 사용하던 실버라이트를 사용하든 해서 알맞게 해석시키면 된다. 그리고, 웹표준 단체는 비표준적인 custom 데이터 타입들 사용이 빈번하게 일어나는 것들을 수집해서 새롭게 표준으로 제정시켜주면 된다.
그리고, 사이트를 만들기 힘든 비전문 개발자들 역시 그냥 대충~ 데이터들만을 지정하고 사이트에 올려서 브라우저의 기본 기능들이 해석시켜주길 바랄 수도 있다. 이런 논리적인 구성에 대한 편집 프로그램들은 개발하기 무척이나 쉬울 것이 분명하기 때문에 대충 프로그램에서 드래그앤드롭 으로 사이트에 어떤 내용들이 들어갈지 지정해준 다음에 publishing 버튼 한번 때려 누르면 업로드 되게 할 수 있다. 홈페이지 만들기 빡세서 일반인들이 블로그 쓰는 일도 없을 거라는 이야기이다. (왜 블로그가 인기일까? 왜 트위터가 인기일까? 기본적으로 웹사이트를 만들기가 너무 빡세서 이미 만들어져 있는 서비스를 사용하길 원하는 것이지 않을까? 커뮤니케이션, 일촌 뭐 이런건 둘째로 치자 일단...)
사이트의 기획자들은 더이상 기술 몰라서 전전긍긍할 필요없이 사이트의 기본적인 구성들만을 지정해서 던져주면 그만이고, 그걸 받아서 디자이너들과 개발자들이 이것을 어떻게 구현시킬 것인가에 대해 고민하면 그만이다. 이거 되냐, 저거 되냐... 하면서 모여서 통빡 굴려댈 이유도 없다고 본다.
왜 웹표준 단체가 "이 기술을 사용해라!" 라고 외쳐대면서 html5, javascript, css 를 개발하나? 왜 멀쩡하게 잘 굴러가는 플래시와 같은 기술들이 비표준 이라고 악으로 매도되어야 하나?
웹표준 단체가 웹의 "표준" 을 만드는 일을 하길 원한다면 이런 작업 정도만 해주면 충분하다고 본다. 나머지는 시장에서 해당 표준을 어떻게 잘 보여줄 것인지를 고민하며 서로 경쟁하면 그만이다.
이게 훨씬 쿨하지 않은가? 어처구니 없을 정도로 발전이 더딘 웹표준 기다리면서 혼란스러월 할 사용자들도, 브라우저 벤더들도, 개발자들도 없다. 단지... 정해진 내역들을 실현시키기 위해서 노력하면 그뿐이니깐...
암만 뭐라 해봤자 사이트를 좀 더 편리하고 멋지게 만들라고 삽질을 할 뿐이지, 막상 내용들은 문서 이거나, 그림 이거나, 영상 이거나, 음악 이거나, 혹은... 게임이나 어플리케이션 같이 애시당초 여기저기 보여주기엔 무리가 있는 것들 처럼 이미 뭘 볼지 정해진 것들 뿐이다. 당췌 알 수 없는건, 모양과 논리적인 형태가 뒤섞여서 짬뽕이 되었기에 웹사이트 만들기가 피토할 정도로 힘들어지고, 이 사이트 여기도 저기도 보이게 하려고 머리에서 김이 날 정도라는 것이다.
단지 내용만을 정의해주면 되지 않나... 왜 윈도우고 맥이고, 모바일이고, 이것저것... 다 제대로 보여지게 하기 위한 사이트 만든다고 웹표준을 지정하고 앉아있나... 단지 내용을 정의하고, 지원 안되게 만들어져 있으면 걍 기본적인 형태로 내용만을 보면 되잖아... 정 그렇게 하나의 레이아웃으로 모두 보여지게 만들어야 하면 레이아웃에 대한 1차적 표준 대안으로서 html, javascript, css 를 권장하면 되잖아? 서비스 만드는데 "아... 내가 원하는 사이트를 만들라면 이 기술을 써야해..." 하면 그냥 그거 쓰면 되지... 사용자들은 "허... 근데 니가 만든건 너무 X 같다..." 하면 기본 기능으로 보겠지.
무슨 놈의 html, javascript, css 가지고 acid 테스트니 뭐니 한다고 브라우저들 줄 세우고 앉아있나... 아쌀하게 보여주는 layout 만들어져 있으면 그걸로 보면 되고, 아니면, 걍 브라우저 기본으로 보면 되지...
당췌 웹표준과 플래시가 경쟁을 한다는 것 자체가 이해가 안된다... 웹표준이 왜 "사용되어지길 바라는 강제력을 가지며 만들어지는지" 자체도 이해를 못하겠고, 그렇게 만들어져 봤자. 개발 병맛나게 하면 웹표준으로 만든 사이트라고 해봤자 병맛 나는건 당연할텐데, 왜 웹표준으로 만들면 쿨하고, 플래시로 만들면 병신이다 라고 알려지는 것인지도 모르겠다.
플래시라는 사용자 경험을 증진 시키기 위한 기술을 소화시키지 못하고, 그런 기술들이 플러그인 이라고 나가떨어지게 만들면 그게 기술의 발전일까? 그거 대체하겠다고 "표준기관" 이 canvas 다 뭐다 개발하고 앉아있는게 정상일까? 웹표준이 웹사이트가 어떻게 보여지길 고민할 필요는 없다고 본다. 웹표준이 이야기하는 html, javascript, css 모두 1차적 대안으로서 제안되면 그만이다. 그들이 이야기하는 html, javascript, css 이전에 더 우선적으로 표준화 되어야 하는 부분들이 있다.
웹사이트가 무엇을 보여줄지, 그 것을 보여주기 위해서 브라우저 벤더들이, 플러그인 벤더들이 무엇을 해야하는지에 대해서 결정내려주는 것이다. 웹표준 단체가 할 일은 느리게 발전하는 html, javascript, css 쓰라고 할게 아니라, 사용자들이 어떤 내용을 보기를 원하고 있는지를 파악하고 논리적인 형태로 정의 내려주면 그만이다.
"어디서나 똑같이 보여주기 위한 웹표준" 따위는 필요없다고 본다. (애시당초 그게 가능했으면 서비스 제공자들이 m 이다 www 다 해서 플랫폼에 최적화된 사이트를 개발할 일도 없었다.) "어디서나 똑같은 내용을 볼 수 있게 해주는 웹표준" 이 더 필요하지 않을까? "어떻게 보일지", "어떻게 볼지" 는 각 벤더들과 서비스 제공자, 그리고, 사용자들이 고민하고 선택할 문제이지 않을까 싶다.
무엇이 보여져야 하는가? 가 결정되면 그 이후부터는 일사천리로 모든것이 정상화 될 수 있다. 기본적으로 애플과 어도비의 대립 부터 시작해서, 새로운 기술들이 웹에 등장하지 못하는 수많은 이유들은 "웹이 무엇을 보여줄것인지" 가 결정되지 않은 상태에서, "어떻게 보여질 것 인지" 에 대해서만 죽어라 싸우고 앉아 있기 때문이다. 웹의 document 표준이 제정되어 있다면 html 도, flash 도 그 문서를 보여주는데 최선을 다하는 기능을 만들 것이다. 웹이 image gallery 를 표준으로 제정한다면 모두가 그것을 보여주는데 최선을 다할 것이다.
웹표준의 궁극적 목표가 "모든 플랫폼에서 같은 내용을 보여주기 위한 표준적 약속" 을 구현하길 원한다면, "어떻게 보여질지" 를 두고 왈가왈부 하는 일들은 없어야 한다. 중요한 것은 "무엇을 보여줄지" 를 결정해주면 된다. 그것이 기본적으로 구현되고, 그것이 기본적인 사양으로서 볼 수 있다는 것이 바닥에 깔리고 나면, 그 이후에 "사용자 경험을 더욱 더 강력하게 하기 위한" 기술들이 부차적인 문제들을 해결할 것이다.
html, javascript, css 는 웹표준의 이상과 맞지 않는다. 그것은 웹이 바라는 궁극적 이상과 거리가 멀다. 그것은 윈도우가 IE 를 강제했던 것과 마찬가지로 대체하기 힘든 기술에 대한 강요일 뿐이다. 대체하고 싶어도 그것을 써야한다고 강제하면 그것은 웹표준이 시장에 긍정적이 아닌, 부정적 요소로 작동되는 것이다. 서비스 제공자, 개발사, 사용자 모두 "이 내용을 이런 형태로 보는 것이 더 편하다." 라는데 웹표준 기술들이 그것을 구현하기 불편하게 되어 있기에 대체가 안된다면 "그렇게 보여지는 것을 포기하는 것이 옳을까?" 플래시에 대한 웹표준의 접근은 근본부터가 어긋나 있다는 생각이 든다. 하물며 웹표준 기술을 사용하더라도 최악의 사이트는 얼마든지 만들어낼 수 있을텐데, 사용자는 그것을 참고 견뎌야 하나?
이번 애플과 어도비의 싸움은 가지를 보면 끝날 기미가 보이질 않는다. 아니... 끝나더라도 지금껏 잘 사용되던 기술 하나가 죽어버림으로서 "그 가능성까지 말살해버리는" 형태로 끝나버릴 것이다. (현재 웹표준과 플래시의 대립은 플래시가 죽어버림으로서 플래시로 가능했던 것들이 웹에서 사라져서 애플의 앱스토어로 이전되어 버리는 형태로 끝나버릴 가능성이 높다. 웹표준이 플래시를 대체할 일은 없을 것이라는 것이다. 그것이 가능할 정도로 투자 대비 효율이 있는 일이었다면 나 부터가 진즉에 웹표준을 사용했을 것이다. 웹표준이 플래시만이 가지던 그 특징을 대체할 것이라는 말은 개소리다.) 그것은 과연 기술의 행복일까? 아니... 비극이다. "끝나지 않는 싸움" 의 원인들은 대부분 "양측 모두의 의견이 맞기 때문" 인 경우가 많다. 그리고, 양측 모두의 의견이 맞는 이유의 뿌리를 찾아보면 결국 "전제의 오류" 라는 것에서 부터 시작하는 경우가 많다.
웹표준 html, javascript, css 와 flash 의 끝나지 않는 양측 모두의 의견이 맞는 싸움의 원인은 결국 "웹표준이 가진 전제적 오류" 에서부터 시작한다.
이 싸움이 비극으로 끝나지 않게 하려면, 웹표준 자체가 변해야 한다...