Web3.0 as post 2.0 part 1

Blog

JAN31

Web3.0 as post 2.0 part 1

30_small

Web 3.0 은 무엇일까요?

Web3.0에 대한 이야기가 흘러 나온지도 2년여가 지난 듯 합니다. Web2.0이 무엇인지 이제 겨우 감 잡은 업계 종사자들은 난데없이 3.0을 외치는 선지자들 덕분에 혼란의 시대를 보내는 듯 합니다. 시도때도 없이 버전 업을 하는 포토#은 돈 버느라 그렇다 하더라도, 세계 공통 프로토콜인 Web의 버전 업을 이토록 빠르게 추진하는 어떤 단체라도 있는 것일까요?

pic1

아들에게 2.0이란 이름을 작명해 주신 Jon Blake Cusack씨

JBC가 업그레이드 되기 위해서는 앞으로 20~30년이 필요하다

(출처 : strangenewsnow.blogspot.com)

문가들은 경쟁하듯 의미 파악도 어려운 전문 조어들을 쏟아내며 Web3.0을 설명하지만, 우리를 더욱 혼란스럽게 하는 것은 그나마 서로 다른 이야기들을 하고 있다는 것입니다. 잠시 그들의 이야기를 들어보죠.

에릭 슈미트 (구글 CEO / 2007년5월 서울 디지털 포럼)

웹 2.0은 마케팅 용어이며 나는 여러분이 웹 3.0을 방금 발명했다고 생각한다. 그러나 웹 3.0이 무엇인지 추측할 때, 여러분에게 이는 응용 프로그램을 만드는 다른 방식이라고 말하고 싶다. 웹 3.0이 궁극적으로 함께 결합된 응용 프로그램으로 보일 것이라는 것이 나의 추측이다. 수많은 특성이 있다 : 응용 프로그램들은 상대적으로 작고 데이터는 그 무리들 안에 있으며 그 응용 프로그램들은 아무 장치나 PC, 휴대 전화를 통해 실행할 수 있다. 응용 프로그램들은 매우 빠르며 사용자 맞춤식으로 이러한 프로그램들을 변경할 수 있다. 게다가 이러한 응용 프로그램들은 바이러스가 전염되는 것처럼 소셜 네트워크, 전자 우편을 통해 배포된다. 가게에 가서 물건을 구입하지 않아도 된다. 우리가 컴퓨팅에서 볼 수 있었던 응용 모델과는 매우 다르다. (출처 위키피디아 : http://ko.wikipedia.org/wiki/웹_3.0)

리드 헤스팅스 (넥플릭스 설립자)

웹 1.0은 전화 접속에 5.0K 평균 대역이고, 웹 2.0은 평균 1메가비트의 대역이며 웹 3.0은 언제나 10메가비트의 대역이 될 것이다. 웹 3.0의 대역은 완전한 동영상으로 이루어진 웹이 될 것이며 이것이 바로 웹 3.0의 느낌과 비슷할 것이다. (출처 위키피디아 : http://ko.wikipedia.org/wiki/웹_3.0)

슈미트씨는 응용 프로그램이라 하고 헤스팅스씨는 동영상 웹이라 합니다. 인터넷을 찾아보면 클러스터링, 시맨틱 웹, 광대역 데이터베이스 등 토익 980을 찍은 영어 능통자들에게조차 꼬부랑 글씨로 다가오는 온갖 희안한 용어로 웹3.0을 소개하는 글들을 만나볼 수 있습니다.

도데체 Web3.0이 무엇인가? 쉽지 않은 이야기지만 최대한 쉬운 어휘로 여러분들께 소개해 드리고자합니다.

Web2.0은 마케팅 용어?

우선 Web2.0의 의미부터 재조명해 보죠. Web2.0은 2003년경 부터 사용되기 시작하였습니다. 여기서 사용되기 시작했다는 것은 어느날 갑자기 천재적인 개발자가 Web의 두 번째 버전을 만들었다는 것이 아닙니다. Web2.0은 서서히 발전하던 기술의 역사에 인위적인 획을 그어 구분짓기를 했다는 편이 맞을 것입니다. 기술과 기획의 두 가지 측면에서 살펴보죠.

첫째, 기술적으로는 독립적으로 발전하고 있던 Web의 구성요소들인 HTML, XHTML, Javascript, CSS, XML 등을 잘 조화 시켜서 특별한 사용법을 찾아낸 것입니다. 그냥 먹어도 맛있는 치즈, 크래커, 토마토를 적절한 비율로 배합하여 카나페를 만들었다고 보면 됩니다.

pic3

그냥 먹어도 맛있는 재료들을 단지 모아놓았을 뿐!

둘째, 기획적으로는 그때까지도 잘 쓰고 있었고 활발하게 발전되던 개인간 커뮤니케이션을 강조한 것입니다. 싸이월드가 이미 전국민적 여가생활이 되어 SK로 합병되었을 시기에 “자! 이제는 커뮤니케이션의 시대다!”고 뒷북을 친 것이나 다름 없죠.

물론 커뮤니티 서비스에 있어서 한국은 매우 특수한 케이스에 속합니다. 참여형 웹을 독자적으로 발전시켰으나, 포털이나 개인은 수집된 정보를 공유하지 않았습니다. 회원가입을 하고 등업이란 절차를 거쳐야 가치를 알 수 없는 미지의 정보를 볼 수 있었습니다. 자신이 생산하지도 않았고, 심지어는 자신이 직접 수집하지도 않은 정보의 소유권을 주장하는 희안한 현상이었습니다. Web2.0은 이러한 정보들을 개방하고 공유하여 더 나은 정보로 발전하는 모델입니다. 위키피디아에서 볼 수 있는 집단지성을 예로 들 수 있습니다. Web2.0이라는 패러다임을 선도할 수 있는 토대인 인프라는 잘 갖춰놓았으나 한국어라는 언어적인 제약과 정보 유통의 폐쇄성 때문에 훌륭한 커뮤니티 툴들이 국내용 이상으로 발전되지 못했던 것입니다. 세계인의 눈으로 볼 때에는 한국은 인터넷 ‘라인’ 강국일 뿐입니다.

Web2.0 이라는 어휘가 실제 마케팅에 많이 이용되기도 했지만, 기술적으로나 내용적으로나 새로운 것이 개발되지 않고 단지 이전의 기술들을 잘 포장했다는 의미로 슈미트씨는 마케팅 용어일 뿐이라 말했을 것입니다. 하지만 카레돈까스, 치즈라면, 짜빠구리, 라이스버거 등도 훌륭한 먹을거리이듯 Web2.0도 분명 새롭고 획기적인 변화임에는 틀림 없습니다. 앞으로 펼쳐질 Web3.0도 결국 Web2.0에서 정리된 여러 개념들에 종속적일 수 밖에 없습니다. 다음 장에는 Web2.0에서 정리된 개념들을 기술합니다.

HTML, XHTML, Javascript, XML은 어떻게 발전되었는가?

HTML

HTML 은 Hyper Text Markup Language로 인간의 언어인 텍스트를 기계가 알아 들을 수 있도록 규칙을 정한 것입니다. 물론 기계는 아직 인간의 언어를 이해하지 못합니다. 기계가 해석할 수 있는 것은 어느 부분이 제목이고 어느 부분이 문단인지 등 그 문서의 구조 뿐입니다.

여러분이 MS Word나 한글을 사용해서 워드 프로세싱을 한다고 가정해보죠. 제목과 내용을 구분하기 위해 글자의 크기를 늘리고 볼드체로 변경할 수도 있고, 계단식 리스트로 만들어 단락을 구분할 수도 있습니다. 또는 워드프로세서가 제공하는 스타일 지정 기능으로 할 수도 있을 것입니다. 기계는 어떤 것을 제목이라 알아볼 수 있을까요? 결론부터 이야기 하자면 인간은 글자 크기와 볼드체로는 그 부분이 제목인지 알 수 있지만 기계는 그렇지 못합니다. 문장 중간에도 강조를 위해 크고 두꺼운 글꼴을 사용할 수도 있기 때문입니다. 기계에게는 “여기가 제목이야”라고 콕 찝어 알려주어야 합니다. 즉 계층이 있는 리스트로 만들거나 미리 정의된 스타일로 지정해야 합니다.

HTML 은 이렇게 인간의 텍스트 속에 기계가 알 수 있는 코드를 삽입한 것입니다. 제목을 나타낼 땐, <h1>대제목…</h1>, <h2>소제목…</h2> 등으로, 문단을 나타낼 땐 <p>문단…</p> 등으로 표현하는 것입니다. 여기서 <>로 묶인, 문서의 부분을 정의하는 요소를 태그라 합니다.

HTML은 새로운 요소들이 필요함에 따라 버전업을 해왔습니다. 현재 최신 버전은 HTML 4.01로 곧 5.0이 나온다는 소문이 돌고 있습니다. HTML은 HTML을 표현하는 매체인 웹브라우저가 버전업을 함에 따라 발전되었습니다. 최초의 웹브라우저는 HTML을 표현하기 위해 만들어졌으나, 새로운 기능에 대한 사용자의 요구에 따라 웹브라우저를 만드는 회사들이 새로운 태그들을 추가하였습니다. 이렇게 추가된 태그를 사용한 페이지는 다른 웹브라우저로 볼 때 제대로 보이지 않는 문제를 가지게되었습니다.

예를 들어 MS에서 “우리는 볼드체를 쓸 땐 <b></b>로 할 거다”고 선언해서 익스플로러 2.0를 새로 출시한고 하면, 이 기준으로 만들어진 웹사이트는 익스플로러에서는 잘 보이지만 넷스케이프 등 다른 브라우저 뿐 아니라 익스플로러 1.0에서도 표현되지 않을 것입니다. 그래서 HTML을 표현하는 웹브라우저들은 HTML이란 언어의 해석을 엄격하게 하지 않도록 만들어집니다. 모르는 부분은 무시하고 넘어가는 것이죠. 이런 이유로 파이어폭스에서는 잘 보이는 페이지가 익스플로러에서는 깨져서 나온다던지 하는 현상이 벌어지고 “이 페이지는 익스플로러 6.0에서 최적화 되었습니다”라고 표시하는 일도 일어났습니다.

웹 표준을 제정하는 W3C(World Wide Web Consortium)에서는 이런 젼차로 어린 백셩을 위하야 HTML의 버전을 제정해서 발표하고 있습니다. 제발 아무 태그나 쓰지 말라는 것입니다. Web2.0을 주도하는 사람들은 이런 문제로 인해 표준적인 태그만으로 웹사이트를 만들 것을 권고하고 있습니다. Web2.0의 시대에는 표준코딩의 필요성에 대한 인식이 발전되었습니다.

하지만 아무리 권고를 해도 많은 사람들이 지키지 않는 것이 현실입니다. 기계가 해석하기 편하도록 설계된 HTML이 웹브라우저들의 경쟁으로 기계가 알아 볼 수 없는 일들이 왕왕 벌어지다 보니 보다 엄격한 언어체계가 필요하게 되었습니다. 이래서 등장한 언어가 XHTML입니다.

XHTML

XHTML 은 XML에 기반해 만들어진 표준입니다. XML에 대한 설명을 안 할 수가 없는데, 간단히 말하면 HTML과 같은 태그 기반으로 이루어진 데이터를 표현하는 표준 규약입니다. 아래와 같이 데이터를 계층으로 구조화 시켜 만들어집니다.

  • <사무실>
    • <책상>
      • <다리 수량=”4”>목재</다리>
      • <상판>
        • <컴퓨터>
          • <키보드>삼성 103키</키보드>
          • <마우스>광마우스</마우스>
        • </컴퓨터>
      • </상판>
    • </책상>
    • <책상>
      • <다리 수량=”3” />
    • </책상>
  • </사무실>

여러분은 이 사무실에 책상이 몇 개 있는지, 컴퓨터는 몇 대가 있는지, 다리가 세 개가 있는 책상이 있는지 등 사무실을 구성하는 물품들의 정보를 쉽게 알 수 있을 것입니다. 그것은 여러분 뿐 아니라 기계도 마찬가지입니다.

XML은 자료를 표현하는 것이기 때문에 매우 엄격한 규칙을 가집니다. 가령 위 XML에서 마지막 </사무실>이 없다면 이 XML은 HTML과 달리 에러가 날 것입니다. (HTML은 마지막 태그를 닫던 말던 잘 표현됩니다. 위에서 언급했던 대로 웹브라우저가 엄격하게 해석하지 않기 때문이죠.)

규격에 잘 맞는 XML은 문서의 정의를 필요로 합니다. 위의 예에서 문서 정의를 하자면, 이 문서에서는 “사무실 속에 책상이 있고 책상은 다리와 상판을 포함하고 상판은 컴퓨터를 포함하여 컴퓨터는 키보드와 마우스를 포함한다.”가 문서 정의가 되겠습니다. 문서가 어떻게 구성되는지 규칙을 정하는 것입니다. 사람들은 특별한 필요에 의해 규칙을 정한 XML들을 만들어 냈습니다. 웹페이지의 내용을 다른 기기나 다른 프로그램에서도 읽을 수 있도록 만든 RSS, 그리고 매우 엄격한 HTML인 XHTML 등이 있습니다.

XHTML이 이렇게 규칙에 맞게 만들어 졌기때문에, 기계는 HTML보다 더욱 올바르게 문서를 해석하고 그 문서를 이용해서 여러 일을 할 수 있게 됩니다. 위의 예에서 다리가 세 개인 책상을 찾아낸다거나 마우스가 광마우스인 컴퓨터를 찾아 볼마우스로 바꾸는 등 정보의 열람과 가공이 용이해진 것입니다.

Web1.0의 시대에는 HTML을 해석하여 웹브라우저에 표현하는 것에 초점이 맞춰졌다면, Web2.0의 시대에서는 규격에 잘 맞는 HTML 또는 XHTML을 사용하여 브라우저에 표현하는 표준화 작업 후 문서의 내용을 변경한다거나 표현되는 스타일을 변경하는 등 사용자와의 인터렉티브한 커뮤니케이션, 또는 기계와 기계간의 정보 교환이 더욱 중요해 졌다고 할 수 있습니다.

Javascript

스크립트 언어란 응용프로그램 내에서 구동되는 언어이며 응용프로그램을 만드는 C/C++, Java, VB 등과 구별되는 개념입니다. Javascript는 웹브라우저라는 응용프로그램에서 구동되는 스크립트 언어로써 HTML을 웹브라우저에 표현하기 전/후에 이런저런 일들을 할 수 있습니다.

여기서 이런저런 일이란 시간이 지남에 따라 점점 발전되어왔습니다. 여러분이 망치를 하나 가지고 있다고 하죠. 여러분은 망치를 사용하여 못을 박을 수도 있고 찌그러진 쇠를 펼 수도 있으며 오대수 아저씨처럼 살인 무기로도 사용할 수도 있습니다. javascript역시 폼에 입력된 값이 있는지 없는지 검사하는 용도라던가 경고 메시지를 보여주는 간단한 기능을 주로 사용했었습니다. 기술적으로 그 이상을 구현할 수도 있었지만, 기획적으로 그 이상 의미 있는 일이 없었기 때문입니다. 시간이 지남에 따라 특정 요소를 마우스로 드래그 하여 위치를 바꾼다던가 복잡한 계산을 통한 HTML을 가공하는 기능이 사용자들에게 특별한 의미를 주게 되었고 그에따라 javascript는 복잡해졌으며 비동기식 통신을 이용한 Ajax로도 발전하였습니다.

Web2.0의 핵심 기술 중 하나인 Ajax는 웹페이지를 리로딩하지 않고 새로운 정보를 받아 화면에 표시하는 기술로 게시판의 페이지를 클릭했을 때 다음/이전 페이지를 리로딩 없이 볼 수 있는 등의 기능을 구현할 수 있습니다. Ajax는 전혀 새로운 기술이 아니었습니다. 이미 존재하던 httpRequest, XML Parser, innerHTML 등 javascript의 기술들을 잘 섞어서 만든 기능이기 때문입니다. 이미 존재하던 뻰치, 못, 망치를 이용해 뻰치로 못을 잡고 나무에 댄 후 망치를 90도 각도로 내리치면 손도 안 다치고 못이 잘 박힌다는 설명을 신기술이라 할 수는 없습니다. 기술의 발전이 아닌 사용법의 발전인 것이죠.

하지만 치즈라면이 훌륭한 이유가 새로운 재료를 사용한 것이 아니듯, 웹브라우저만으로 불가능했던 작업들이 가능해진 의미를 무시할 수 없습니다. 웹상에서 오피스 프로그램을 구동할 수 있을 정도로 많은 실험들이 Web2.0시대에 행해지고 있으며, 이는 우리가 Web3.0을 예상할 수 있는 좋은 근거가 됩니다.

다음 회에는 이렇게 발전되어온 Web2.0의 의미를 정리하고 post Web2.0인 Web3.0을 조망하도록 하겠습니다.