SGML에서 HTML까지 마크업언어에 관한 간략한 이해 > 퍼블리셔팁

퍼블리셔팁

퍼블리싱과 관련된 유용한 정보를 공유하세요.
질문은 상단의 QA에서 해주시기 바랍니다.

SGML에서 HTML까지 마크업언어에 관한 간략한 이해 정보

HTML SGML에서 HTML까지 마크업언어에 관한 간략한 이해

본문

마크업언어에서 마크업(markup) 단어의 어원은 출판의 교정기호에서 유래되었다고 합니다. 어떻게 보면 비슷한 것으로 보입니다. 출판물의 교정을 하기 위해서 사용하는 기호는 기존의 텍스트 위에다 영역을 표시하고 해당 부분을 지적하는 기호로 이용합니다. 

마크업의 언어는 1960년대 IBM에서 범용목적의 말그대로 GML에서 시작하여, 이를 기초로 표준적인 마크업 언어(SGML)가 나오게 됩니다. 지금의 XML, XHTML, HTML은 이런 SGML을 바탕으로 합니다. 그러나 실제 SGML에 관한 내용은 직접 보기 보다는 하나의 XML 내지 HTML 문법으로 배우며 또한 그런 것으로 족합니다. 사실 마크업언어가 그리 복잡한 것도 아니고 단순한 것입니다. 

마크업 언어는 전산이 발달하면서 대량의 자료 처리 요청이 기대되었고, 이러한 처리를 위해서 마크업언어를 이용하게 되면 기존의 텍스트의 변경없이 논리적인 구조를 갖게 되었습니다. 뿐만 아니라 인간에게도 보기좋은 가독성을 여전히 유지하게 되었으며 컴퓨터의 처리도 이러한 태그들을 바탕으로 구조화된 내용을 다루기 용이해졌습니다. 또한 이러한 마크업 언어는 시스템이나 환경에서 독립된 범용성까지 특징을 갖게 되었습니다. 

SGML은 보통 메타언어라 불러지며, 사용하게될 마크업의 문법적인 부분과 마크업의 요소들의 정의를 다루고 있습니다. 이를 명확히 문법과 요소로 나누는 것은 좀더 상세히 보면 아니지만, 간단히 집어보는 정도로 이해를 한다면 문법적인 부분은 SGML Declaration에서 담당하며, 요소에 관련된 부분은 SGML DTD에서 다룹니다. 누가 물어보면 이렇게 대답하면 옳지는 않으나 간단히 이렿게 말할 수 있습니다. DTD도 문법과 관련된 내용이 있기도 하기 때문입니다. 마지막으로 이러한 SGML Declaration과 DTD를 기초로 하여 작성된 문서를 SGML Document Instance라고 합니다. 

이 정도면 SGML에 관하여 이해를 어느정도 하셨다고 봅니다. 이를 바탕으로 지금의 HTML 문서를 생각해보면 HTML DTD를 많이 들어봤을 것입니다. 웹표준을 위한 첫 단계로 문서 서두에 HTML DTD를 넣는 것을 의미합니다. 그러나 현실적인 부분에서 웹표준과 벗어난 처리를 하는 것의 사실상 인터넷 익스플로어의 쿼크모드입니다. 쿼크모드라는 것은 DTD가 선언되지 않은 HTML문서를 의미하며 만일 쿼크모드로 작성하였다면 웹표준을 생각한다면 이것은 엄청난 문제의 시작입니다.

웹표준의 의미는 전 보통 사람이 이야기하는 것에 차이가 있어 다소 문학적인 어휘처럼 쓰는 것으로 들리기도 합니다. 웹표준에 이렇다할 정의를 내리기에는 어느정도 합의가 있으니까 이야기되어오겠지만, 이것은 사실 지금의 현실을 반영한 것이기도 합니다. 

만일 DTD 없는 쿼크모드로 DIV 하나만을 생성헀다고 합시다. 이것은 시작부터 height와 width를 계산하는 기준이 다릅니다. 웹표준이 아닌 DTD 생략은 div로 레이아웃 짜는 것이 불가능하며, 테이블로 밖에 사용할 수 없는 숙명적인 결과물이기도 합니다. 그뿐만 아니라 div는 그저 블록속성의 대표주자일뿐이지, 다른 h1,h2, p, ul, li 같은 블록 속성 모두  비표준적인 IE만의 height와 width로 처리하니 웹페이지가 큰일이 납니다.  이것을 다 CSS 핵을 써가면서 고치겠습니까? 아니면 DTD 추가로 해결할까요? 어떤 것이 더 편하겠습니까. 

어떠한 분은 웹표준이 유지보수에 보다 비싼 비용이 든다 할지 모르겠지만, 이제는 반대입니다. 웹표준은 오히려 넘기 어려운 장벽도 아니며 반나절만에 주요부분은 꺠달을 수 있기도 합니다. 이것은 기초적인 내용을 명세에서 다루는 것인데 이정도만 챙겨도 어느정도 다른 크로스브라우징을 생각하기 쉽습니다. 

또한 크로스브라우징도 일단 웹표준으로 작성하고 각 브라우저에 맞춰 문제 있는 부분을 보정하는 것이 오히려 편합니다. 대개 문제 삼는 IE를 제외하고는 대부분 업데이트 기능도 내장되어 최신의 상태를 유지하고 다른 운영체제와 여러 모바일 기기 등장으로 오히려 IE만을 생각하고 비표준모드로 작성할 이유도 점차 사라졌습니다.  

이야기는 다른데로 빠졌지만 본래 이야기로 들어와 SGML과 HTML 및 XML을 살펴봅시다. SGML Declaration에서 HTML과 XML은 다릅니다. XHTML은 아마 XML과 같거나 유사하게 사용하리라 봅니다. HTML은 SGML Declaration에서 omt tag나 short tag가 feature를 살펴보면 허용되었습니다. 그러기에 HTML 문법으로 옳으나 XHTML문법으로는 옳지 않은 문법이 상당할 수 있습니다. 또한 HTML 문서가 내부적으로 처리하는 문자집합인 유니코드도 SGML Declartion에 담겨져 있기도 하며, 심지어 SGML Declaration을 변경하여 태그의 시작과 종료를 의미하는 꺽쇠도 변경할 수 있습니다.

다만 SGML이 메타적인 언어로 이야기했던 것은 SGML은 그저 선언적인 기능을 할 뿐입니다. 앞으로 어떠한 마크업 문법을 사용하겠냐니, 어떠한 정해진 문서형식을 사용하겠다는 것을 표준적으로 알리는 것 뿐입니다. SGML은 그저 제대로 SGML 선언되었는지 유효성 검사와 해당 선언으로 문서가 작성되었는지를 검사할 기능일 뿐입니다.

<b>굵게</b>같은 예제로 굻게 처리하겠다는 것은 어디까지나 해당 문서형식을 제안한 W3C의 HTML DTD를 작성한 사람들의 의지이며 그에 따른 약속입니다. 

우리나라에서 전자도서관 사업을 하면서 SGML을 도입하여 서적을 옮기면서, 이를 보는 브라우저를 SGML 브라우저라고 하는데... 사실 SGML 브라우저가 존재할 수는 없습니다. 어디까지나 해당 문서 형식을 제안한 사람의 결단에 달린 내용이니까요.

이야기가 정리되지못하고 이리저리 주제로 파져나갔는데 다시 이를 한번에 모으려니 좀 고생할 것 같네요. 정리하면 HTML문서는 SGML Declaration과 SGML DTD는 W3C에서 제안한 것을 사용하는 것을 의미합니다. 웹표준에 맞춰 문서를 작성하겠다는 DTD 삽입은 이러한 의미를 갖는 것입니다. 

이에 비하면 XML은 무엇일까요? 직접 생짜로 SGML 작성을 시작하는 것을 보다 간결히 이용하기 위해서 SGML Declaration 부분까지는 W3C에서 제안한 것을 공유합니다. DTD는 작성자에 있는 것이고 보다 간편화된 벙용언어로 문서형식은 작성자 몫입니다. 이에 반해 문서형식까지 W3C에 정해진 HTML 이라는 것까지 기술된 것은 HTML 문서 이고요.


 사실 이렇게 오기까지는 어떻게 보면 운명적이기도 합니다. SGML의 범용성이 곧바로 일반성을 만족시키는 것이 아닙니다. 여기서 일반성의 의미는 널리 공통적으로 사용한다는 의미이고요. 그러기에 좀더 간결한 일반성을 위해서 문법적 수준까지 정한 것은 XML, 이보다 자세히 기술되는 요소 수준까지 정의된 것이 HTML입니다. 이로써 보편적인 HTML 문서를 사용하기로 약속하면서 이에 맞는 브라우저 처리도 있는 것이겠고요. 

HTML문서를 작성하면서 테이블로 레이아웃 짠다는 것은 안타깝게도 크로스브라우징을 위한 힘겨운 노력의 부산물이지, 제대로 테이블은 약속한대로 표를 의미하며 행과 열의 공통적인 속성으로 어떠한 내용이 기술된 것이 담겠다는 약속입니다. 이러한 구닥다리로 갈 수 밖에 없던 과거 환경은 당시 현실이 2000년대 초반까지만 하여도 네이버나 다른 포탈도 DTD를 적시하지 않았습니다. 웹표준의 이야기가 갑자기 나온 것도 아니라 꽤 오래된 이야기였습니다. 2000년대 초반부터 웹표준에 관한 이야기는 설왕설래하였고 우리나라 포탈들은 참 개판이다라는 과격한 표현까지도 종종 보았습니다. 

그러나 이것이 본래 바로 마크업 언어가 전산처리에 관해서 사용된 의미를 짐작해본다면 잘못된 요소 사용에 문제라며 고개를 끄덕이실지도 모르겠습니다. 약속에 맞게 이용하는 것이 좋을 것입니다. address요소가 이탤릭 글꼴로 처리한다하여 address로 이용한다면 좀 .... 글쎄요.. 하며 고개를 갸웃거릴 것입니다. 마찬가지입니다. 

또한 웹표준을 운운하면서 W3C에서 정의한 SGML Declaration에서 허용된 feature임에도 불구하고 문법상에 옳지 않는다고 지적하시는 분들도 간혹 있습니다. 가령 XHTML 호환을 염두하고 작성하는 것을 당연하다 생각하면서 다른 잦대로 재는 경우가 있는데, 문법적으로 틀린 것과 이정도로 지켰으면 하는 관습과는 의미가 좀 다릅니다.

그럼 쓩~~ 

추천
0

댓글 0개

전체 797
퍼블리셔팁 내용 검색 HTML에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT