2009년 1월 1일 목요일

왜 웹 표준을 쓰는 것인가?

 

 기존에, 아니 지금도 인터넷의 기본이 되는 언어는 바로 HTML

(Hypertext Markup Language) 입니다. HTML

HTML HTML 2.0, HTML 3.2, HTML 4.01, XHTML1, XHTML1.1

등으로 수 많은 발전을 해왔고, 많은 응용을 통해 개량되고

개선되어 가고 있습니다.

 

 인터넷이 생기고 나서 수 많은 사람들은 HTML을 가지고 많은

웹 페이지를 생성해 내고 있었는데, 왜 최근 들어 갑자기 웹 표준,

접근 성 같은 말들이 화두가 되었을까요?

 

단순하게 크로스 브라우징을 위해서 일까요?

아니면 그냥 W3C(World Wide Web Consorticum)가 권고하니까

그 수많은 돈을 들여 표준으로 전환하는 것일까요?

 

사실 이 문제는 아주 오래 전에 논의되었고, 제 생각에 어느 정도

답이 나왔다고 생각합니다만, 최근에 아직 이런 문제에 대해서

자유롭지 못한 몇 분을 알게 되어 그 분들을 위해 간략하게 적어보도록 하겠습니다.

 

 

 원래 HTML이 근간이 되던 시절에는 사실 상 <TABLE> 태그 등을 통해

화면 구성을 하게 되었습니다. TABLE 태그는 사실 제가 보았을 때

그리 나쁜 화면 구성 방법론이 아닙니다. 어떻게 보면 지금 화두가 되고

있는 표준보다 쉽죠, 그런 면에서는 전 합격 점을 주고 싶습니다.

 

하지만 왜 그 어려운 웹 표준을 사용해야 할까요?

 

그 이유는 잠시 시대를 거슬러 올라가, WEB2.0 이란 말이

나오던 시절로 올라가겠습니다. 역사를 한번 간단하게 살펴보죠.

 

일단 WEB 2.0 이란 말은 팀 오라일리사가 브레인 스토밍 과정 중

그때 당시 유저들의 웹 활동 패턴이 조금씩 달라지고 있음을 감지했고,

아마존이나 블로그등을 통해 기존의 인터넷 환경과는 다르게 변화하고 있다.

라는 가정에 나온 말이 바로 WEB 2.0 입니다.

 

간단하게 기술적으로 풀이하자면,

기존에는 사람들이 HTML이란 언어를 통해 직접 문서를 작성하고

서버 호스팅을 받아 개인 홈페이지 식으로 퍼블리싱 했던 반면에

그때 당시부터 사람들은 블로그나, 다른 플랫폼을 통해 HTML을 몰라도

인터넷에 글을 올릴 수가 있고 직접 적으로 참여하기에 이르렀습니다.

즉 정보의 생산이 그만큼 기술 적으로 편해졌죠

 

그걸로 말미암아 기존에는 HTML이란 장벽 때문에 정보 작성자가

주는 정보를 READER가 그냥 받아드리는 식이였다면, 그때 당시부터는

READER가 직접적으로 그 글에 의견을 달거나, 직접 글을 작성하는 등

쌍방향 소통이 가능해졌다는 것이죠 그래서 이제 참여 방식이 달라졌다~

해서 WEB2.0 이라는 말이 태동하게 되었습니다.

 

자 그럼 다시 시대를 거슬러 올라가 봅시다.

 

그 전엔 바로 시멘틱 웹이라는 것이 있었습니다.

SEMANTIC WEB이라는 말은 사전적 의미로 "의미 있는 웹" 이란 뜻이며,

영국의 팀 버너스 리라는 사람이 주창했습니다.

(팀 버너스 리 라는 사람은 웹의 창시자 이기도 합니다 :) 영국의 귀족

아들이라고 하더라고요.)

  

 

자 이제 대충 웹의 역사에 대해 다뤄봤습니다. 그럼 본격적으로

왜 웹 표준인가를 이야기 해보도록 하죠

 

사실, WEB2.0 이라는 말은 시맨틱 웹이라는 말이랑도 거의 대동소이합니다.

(엄밀히 따지만 완전히 다른 단어지만, 여기선 일단 같은 의미로 차용하겠습니다)

 

 그리고 혹시 유비쿼터스라는 말을 아십니까?

유비쿼터스란, 물이나 공기처럼 시공을 초월해 '언제 어디에나 존재한다'는 뜻의

라틴어(), 사용자가 컴퓨터나 네트워크를 의식하지 않고 장소에 상관없이

자유롭게 네트워크에 접속할 수 있는 환경을 말합니다. 1988년 미국의 사무용

복사기 제조회사인 제록스의 와이저(Mark Weiser) '유비쿼터스 컴퓨팅'이라는

용어를 사용하면서 처음으로 등장했는데요

 

이 유비쿼터스의 근간이 되는 기술이 바로 WEB2.0 입니다.
유비쿼터스는 어떤 기기끼리의 서로간의 통신을 통해 정보를 받고, 보내주는

그런 시스템으로 굴러가는데요 그 중간에 바로 WEB이 자리잡는 경우가

대부분입니다. (자리잡지 않는 경우도 있습니다)

 

자 그럼 여기서 문제가 발생합니다.

 

 자 먼저 HTML의 어머니는 누구인지 잠시 살펴 봅시다 :)

원래는 SGML(Standard Generalized Markup Language)이라는 언어가 있었습니다.

SGML이라는 언어는 굉장히 방대하고 복잡한 언어로서, 문서 구조를 잡기 위한

DTD(Document-Type-Definition)굉장히 어렵고 시간과 비용이 많이 소요됩니다.

또한, SGML은 근본적으로 웹 환경을 고려하지 않았기 때문에,

지원하는 웹 브라우져같은 소프트웨어도 빈약한 상황이죠.

 

그래서 이 단점을 보완해서 나온 것이 HTML 입니다.

HTML SGML의 문법을 이용해서 만든 지정된 특정한 DTD SGML 같이

어떤 문서의 구조를 정의하는 기능이 아닌, SGML에서 파생되어 나온 언어에 의해

정의되고 그것을 통해 고정된 문서 구조를 가진 언어입니다.

즉 문법이 굉장히 단순하고 스타일링에 강한 모습을 보이는 반면,

문서 구조의 정의는 매우 어렵죠.

 

HTML 은 근본적으로 데코레이션 언어입니다. , 정의를 담는 언어라기 보단,

어떤 것을 꾸미고, 나타내주는 것에 최적화 되어있었던 언어죠

HTML을 통해 보여지는 문서는 사람이 보게 되면 사람은 지능이 있기 때문에

문장을 보고 우리가 의미나 구조를 해석해서 볼 수 있는 반면,

 

기계는 절대 그렇게 못하겠죠?

 

예를 들어서 제가 kwon.html 이라는 파일을 열었을 때,

컴퓨터가 만약에 <table> 태그 안에 있는 "나이: 25" 라는 항목을

읽었습니다. 그렇다면 컴퓨터는 단순히 "나이: 25" 라는 단어를 읽을 뿐,

권만진의 나이가 25세구나 라는 의미를 전달받지 못하게 됩니다.

 

예를 들어

 

<h1>권만진</h1>
<dl>
<dt>나이</dt>
<dd>25세</dd>
</dl>

 

 뭐 대충 이런 식으로 짜게 되면, 컴퓨터가 아! 권만진의 나이는 25세구나

라고 의미를 직접 해석할 수 있게 됩니다.

HTML로는 기계가 의미를 알아듣게 하기가 힘들지만, 표준을 이용해서

작성하게 되면 컴퓨터가 알아들을 수 있는 단어가 된다라는 것이죠.

 

이런 연유로 나온 언어가 의미를 담을 수 있는 XML(extensible markup language)

이라는 언어입니다. 바로 SGML이 가지고 있었던 DTD를 이용해서 누구나 문서의

구조를 쉽게 정의할 수 있게 나와서 HTML이 가진 한계를 극복할 수 있게 했습니다.

 

그래서 웹 표준 위원회에서는 1998 2월에 XML을 표준으로 제정하고

지금도 계속 계량화 되어가고 있죠.

 

때문에 표준이 중요한 겁니다.

단순히 웹만을 위해 표준이라는 것이 크로스 브라우징을 위한 것이다.

라고 만 생각하면 아주 1차원적인 발상이라는 겁니다.

 

표준은 앞으로 유비쿼터스를 위해, 기계도 읽어 들일 수 있고

의미를 받아드릴 수 있는 언어입니다.

 

그렇다면 이런 의문을 던질 수도 있겠습니다.

"그러면 모든 기계(디바이스)에 브라우저를 달면 되지 않아요"

 

하지만 모든 기계에 브라우져같은 큰 프로그램을 넣게 된다면

그 가격은 기하급수 적으로 단가가 올라갈 수 있습니다.

모바일만 하더라도, 풀 브라우징(Full-Browsing)을 위해

얼마나 많은 기술이 들어갔습니까? 그쵸?

 

자 결론입니다.

 

단순하게 문서를 스타일링 하기 위한 언어로는 HTML도 쓸만합니다.

 

하지만 의미를 담기엔 너무 먼 언어이기 때문에 WEB2.0에 근간한

유비쿼터스 환경엔 전혀 맞지 않을 수가 있죠.

 

이런 것을 모르고, 단순하게 크로스 브라우징만을 위해

표준으로 바꾼다? 라는 건 그 비용이나 시간적인 측면에서 보았을 때

설득력이 떨어지지 않나 싶습니다.

 

앞으로 만약에 누군가가 왜 웹 표준을 써야 합니까? 라고 물으신다면

이렇게 대답해 주세요

 

"유비쿼터스를 위해!"

 

 

-------------------------------------------------------------

 

초심자를 위한 주석

 

크로스 브라우징이란, 우리가 주로 사용하는 브라우저는 인터넷 익스플로러라는

브라우저로, MS에서 개발한 인터넷 브라우저입니다. 쉽게, IE 라고도 적습니다.

하지만, 아까 말씀드렸던 팀 버너스 리는 MS 직원이 아닙니다.

즉 HTML이나 다른 언어들이 MS에만 최적화가 되어있지 않겠죠?

IE도 분명히 한계가 있고, 그래서 다른 기타 브라우저도 많습니다.

대표적으로 최근 사용률이 증가하는 모질라의 파이어폭스(Firefox)나

구글의 크롬(Crome) 등이 있지요. 이런 브라우저들 사이에서 항상 동일하게

화면을 보여주는 것을 크로스 브라우징이라고 합니다.

 

-------------------------------------------------------------

 

고수들을 위한 주석

 

그래서 가끔 최근에 웹 퍼블리셔 사이에 이런 소리를 듣곤 합니다.

저긴 ul 이 아니야~ ol 이지~ 라는 말들,

하지만 중요한건 아까 말씀드렸듯이 문법이 아니라, 바로 의미입니다.

의미만 바로 살릴 수 있다면 너무 기술적으로 접근을 해서

표준이라는 의미의 융통성을 잃어버리시면 안되겠습니다 :)

 

댓글 14개:

  1. trackback from: 라디오스타의 생각
    왜 웹 표준을 쓰는 것인가? 기존에, 아니 지금도 인터넷의 기본이 되는 언어는 바로 HTML<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:o..

    답글삭제
  2. 웹표준은 진짜 너무 자주 바뀌네요;

    frame->table->div순으로 말이죠 허헛

    답글삭제
  3. 맨 마지막에 언급된 ul과 ol의 구분도 의미적인 구분입니다.

    Unordered List 인가 Ordered List 인가의 차이는 의미적인 차이밖에 없습니다.

    ol 쓸 곳에 ul 을 쓴다고 문법적으로 안되는 이유는 전혀 없지만, ol 이라고 써 두면 사람이 아닌 기계가 읽기에 '이 리스트의 항목은 순서가 의미가 있다.' 라는 것을 알 수 있겠지요.

    답글삭제
  4. 전문적인 내용을 초보자가 봐도 쉽게 이해할 수 있을 정도로 너무나도 잘 정리가 된 글이네요.



    잘 읽고 갑니다.

    새해 복 많이 받으세요.



    ps)제 블로그에 구독 링크 하겠습니다. 괜찮겠죠?

    답글삭제
  5. 한가지 더 첨언하자면, 예로 들어주신 부분은 잘못되었습니다.



    <H1>권만진</H1>

    <UL>

    <LI>나이:</LI>

    <LI>25세</LI>

    </UL>



    은 기계가 해석하기에 그냥 '나이 : ', '25세' 라는 문자열의 리스트 일 뿐이지 나이가 25세구나 하고 연관시킬 수 있지는 않습니다.



    그 의미를 살려서 마크업을 하려면 아래와 같이 하는 것이 맞습니다.



    <h1>권만진</h1>

    <dl>

    <dt>나이</dt>

    <dd>25세</dd>

    </dl>

    답글삭제
  6. @드래곤군 - 2009/01/01 22:20
    ^^;; 정리해 주셔서 감사합니다

    ㅎㅎ 제가 사실 코딩까진 약해요 ㅎㅎ

    답글삭제
  7. @필넷 - 2009/01/01 22:10
    구독은 언제나 환여입니다!! :)



    ㅋㅋ 감사합니다 ^^

    답글삭제
  8. @띠용 - 2009/01/01 21:03
    아마 이젠 좀 멈추지 않을까 싶어요 ^^;;ㅋㅋ

    답글삭제
  9. 웹표준의 중요성은 정말 아무리 강조를 해도 지나치지 않는것 같습니다.

    처음 접하시는 분들께는 기존과 약간 다른 패러다임에 좌절하실지도 모르겠지만 일단 익숙해지고 나면 훨씬 깔끔하기에 컴퓨터 뿐만 아니라 (소스를) 보는 사람까지도 간결 명료하게 알 수 있는것 같습니다. 게다가 로직이 전혀 들어가지 않은 단순히 display 목적으로써의 HTML 사용은 인터페이스와 컨텐츠를 분리시키므로 인터페이스의 변화도 훨씬 용이하구요.

    웹표준을 처음 접하시는 분들이 꼭 읽어봐야 할 포스팅인것 같네요. 유익한 포스팅 감사합니다 ^^

    그리고 새해 복 많이 받으세요 :)

    답글삭제
  10. trackback from: Web 2.0, 모든 사람을 위한.
    "쉽게 써 본 웹 2.0의 개념"으로 이동하기 "Web 2.0의 핵심"으로 이동하기 여름하늘님의 글과 내 글을 토대로 프레젠테이션 자료를 만들었다. 과제 때문에 작업한 것이지만, 나름대로 정리가 된 것 같아 공개한다. 프레젠테이션용이기 때문에 자세한 설명을 제외하고 핵심만 간략하게 표현했다. PPT 다운로드 이 자료의 내용은 여름하늘님께 저작권이 있음을 밝힙니다. 이는 상기 Creative Commons License보다 우위에 있습니다.크리에이티...

    답글삭제
  11. trackback from: 표준은 사용자를 위한 것이다.
    "웹표준에 대한 오해" 글로 이동하기 "중요한 것은 표준이 아니라 사용자들이 창조하는 가치이다." 글로 이동하기 "웹표준은 무엇이며 왜 사용해야 하는가?" 글로 이동하기 "중요한 것은 사용자들이지 표준이 아니다" 확실히 사용자가 중요한 것은 맞다. 사용자가 없으면 웹이 없을 것이고, 웹이 없으면 표준도 의미없다. 하지만, 표준이 왜 있는지부터 짚고 넘어가야 할 것이다. 표준이 있는 이유가 사용자를 위한 것이기 때문이다. 시각장애인을 예로 들어 보자...

    답글삭제
  12. trackback from: table+태그-으로 이어질 블로그링
    table+태그-에 관한블로그를 요약한 것입니다.

    답글삭제
  13. 안그래도 많이 생각하던 부분인데, 좋은 참조글 정말 감사합니다..^_^ 댓글까지 모두 잘 봤습니다~

    답글삭제