본문(Content)

웹표준 교과서(Web標準の教科書)국내에 번역출간된 이후로 ISO-HTML(ISO/IEC 15445:2000)이 도대체 뭐냐는 질문을 종종 받습니다. 간단하게 말하면, ISO-HTML은 우리가 잘 아는 W3C HTML 4.01진짜 표준입니다. 국제표준제정기구인 ISO에서 W3C HTML 4.01의 내용중 표준으로 채택이 가능한 부분만 고르고 재정의하여 표준으로 발행한 것입니다. W3C의 규약은 강제력이 없는 권고사항이지만, ISO-HTML은 이름에 standard가 포함되어 있는 것에서 알 수 있듯이 확실한 국제 표준입니다.

그러나 ISO-HTML은 쓰이기는 커녕 존재 자체가 별로 안 알려져 있는데요, 이 표준이 널리 쓰이기에는 몇 가지 문제점이 있기 때문입니다. 내용만으로 보면 ISO-HTML은 HTML 4.01 strict보다 더 엄격한 규격을 가지고 있는데, W3C의 HTML 4.01 규격중 기본적으로 표현과 내용을 완벽하게 구분한다는 전제를 엄격하게 적용하여, 이에 위배되거나 위배될 여지가 있는 부분은 제거되고 위배되지 않은 부분은 필수(requirement) 수준으로 강화되었습니다. 따라서 ISO-HTML의 의미구조(semantics)는 아주 명확합니다.

다음은 W3C HTML 4.01과의 주요 차이점입니다.

SCRIPT 요소의 사용금지(No SCRIPT element)

ISO-HTML에는 SCRIPT 요소가 포함되어 있지 않습니다. 설명에서는 SCRIPT 요소(element)의 사용성이 아직 완전하지 못한 탓이라고 명시되어 있지만, DOM/ECMAscript는 현시점에서 웹 사이트에 제작에 필수불가결한 부분으로 자리잡고 있기 때문에, 이를 사용하지 못하게 하는 것은 곧, 기술적 제약/난이도를 높인다는 의미와 같습니다.

많은 속성의 제거(Many attributes omitted)

ISO-HTML는 각 요소별(element)로 사용가능한 속성(attribute)을 엄격하게 제한하고 있어, W3C에 익숙한 웹 사이트 제작자에게 불편함을 줄 수 있습니다. 이 문제는 웹 사이트 제작자가 ISO-HTML 규약을 읽는 등, 약간을 관심만 있다면 해결할 수 있는 문제이나, 이는 하드 코딩이 가능한 제작자의 경우에만 해당하는 것으로, 드림위버(dreamweaver) 등의 자동화 툴에 의존하는 대부분의 제작자의 경우에 있어 해당 툴이 ISO-HTML를 지원하지 않는다는 것은 중요한 약점이 될 수 있습니다.

많은 요소의 재정의(Many elements refined)

W3C HTML 4.01에서 정의된 요소 중 29가지 요소가 ISO-HTML에서 재정의되었습니다. 재정의라고 하여 사용성이 완전히 바뀐 것은 아니고, 대부분 엄격함(restriction)의 강화에 대한 보충이 이뤄졌습니다. 예를 들면,

  • <ADDRESS> [W3C 7.5.6] 요소는 예를 들어 클럽 멤버의 주소 리스트 같은 마크업 부분에 사용될 수 없다(The <ADDRESS> [W3C 7.5.6] element should not to be used to markup, for example, a list of addresses of the members of a club)
  • TYPE 속성의 값 중 button은 ISO-HTML에서 사용되지 않습니다. 문서 안에 버튼 형태의 기능을 포함시키고자 할 때는 <BUTTON> [W3C 17.5]를 사용해야 한다(The value 'button' for the attribute TYPE is not available in ISO-HTML. Authors wishing to place button-like devices in documents should use the <BUTTON> [W3C 17.5] element)
  • STYLE [W3C 14.2.3] 요소는 스타일시트 영역으로서 문서의 head에 사용되어야 한다(A <STYLE> [W3C 14.2.3] element may be used in the head of a document as a container for a style sheet)

처럼 표현(presentation)과 내용(contents)을 분리하는 요건을 강화한 것이 두드러집니다. 그러나 이런 엄격함 역시 기술적 난이도를 높이는데 일조하는 부분이기 때문에 이런 미세한 사용성까지 신경쓰는 일부 웹 사이트 제작자 이외의 제작자들에게는 까다로운 규격으로 느껴지기 쉽습니다.

특히, PHP 등의 보급화된 서버 사이드 스크립트(server-side script)로 HTML을 생성할 경우 자주 인라인 스타일을 사용해야 하는 상황이 발생하기 때문에 이 부분에서도 ISO-HTML의 사용성에 작은 문제가 발생합니다.

Pre-HTML

이 부분은 마크업보다는 validation과 관계된 부분입니다. ISO-HTML에서는 타당성 검사(validation system)와 적합성 검사(conforming system)의 구분을 강조하는데, Pre-HTML은 적합성 검사의 단계에서 '검사에 사용하는' 임시 요소입니다. 이 부분은 heading 요소와 몇 가지 관련내용을 포함하고 있는데, 이에 대해서는 14. Document preparation의 내용을 직접 참고하시길 바랍니다..


한 마디로 ISO-HTML의 특징을 말씀드리자면 ISO-HTML은 상당히 엄격한 규격이라고 할 수 있습니다. 그러나 이 엄격함은 HTML/XHTML과의 하위 호환성을 보장하는 근본이기 때문에, 아주 strict한 제작을 선호하는 웹 사이트 제작자들은 먼저 ISO-HTML로 만들고 HTML/XHTML로 변환하는 과정을 거치기도 합니다. 그러나 반대 급부로 이 엄격함이 진입장벽이 되기도 합니다. 홍보가 잘 되지 않은 점도 ISO-HTML이 알려지지 않은 이유가 될 수 있을 것 같습니다만, 현 시점에서 객관적으로 판단해 보자면, ISO-HTML은 완벽한 하위 호환성을 목적으로 하는 경우에 쓰일 수 있고, XHTML은 (앞으로 나올) 상위호환성을 목적으로 할 때 쓰일 수 있다고 보는 것이 가장 타당합니다. 이 부분에 대해 어떤 판단을 하는가에 따라 어떤 DTD를 사용할 것인지가 결정된다고 볼 수 있습니다.

한 번쯤 ISO-HTML 문서를 읽어보시는 것도 마크업의 의미를 살리는데 도움이 되지 않을까 합니다. ISO-HTML의 validation은 W3C validator에서도 가능합니다.

관련 링크(Related links)

하드 코딩
에디터의 자동완성 기능을 사용하지 않고, 모든 코드를 손으로 직접 입력해 코딩하는 방식.
서버 사이드 스크립트(server-side script)로 HTML을 생성할 경우 자주 인라인 스타일을 사용해야 하는 상황이 발생하기 때문에
이 부분은 조금만 신경 쓰면 class로 처리할 수 있습니다만, 사용빈도가 적은 스타일의 경우는 인라인으로 처리하는 편이 더 효율적입니다.
heading 요소
H1, H2... H6를 일컫습니다. ISO-HTML에서는 이 여섯단계의 element에 대해 다음과 같은 명칭을 사용하고 있습니다.
  • H1 ..... Major section header
  • H2 ..... Section header
  • H3 ..... Subsection header
  • H4 ..... Subsubsection header
  • H5 ..... Subsubsubsection header
  • H6 ..... Minor subsubsubsection header
이전 : 1 2 3 4 5 : 다음