본문 바로가기
← 메인으로
Ⅱ. HTML 문서 정의하기

문서 유형 선언하기

게시 2026-07-15

지금까지 저작에 필요한 원문과 요구사항을 준비하였다. 이제부터는 저작 작업을 시작할 것이다. 가장 먼저 할 일은 문서 유형(document type)을 밝히는 것이다. 여러 형식의 문서가 존재하고 있고 브라우저가 몇몇 규격을 다른 방식으로 이해할 수 있으므로 문서 유형을 정확하게 밝혀서 브라우저가 신속하고 올바르게 처리할 수 있도록 도울 필요가 있다.

이처럼 문서 유형을 밝히는 것(document type declaration)[16]을 “DOCTYPE 선언”이라고 한다. 이것은 브라우저에 의해 처리될 문서가 어떤 버전의 마크업 언어로 작성되었는지 알려주는 행위다. 오로지 한 가지 유형의 기술 표준으로만 문서를 작성한다면 굳이 DOCTYPE을 선언할 필요는 없을 것이다. HTML 외에도 다양한 유형의 기술 표준이 통용되고 있으며, 기술 표현의 유형에 따라 문서 구조가 달라지므로 브라우저가 문서 유형을 미리 파악해야만 나름의 준비를 제대로 할 수 있을 것이다.

이전 버전의 HTML(HTML2~HTML4)은 SGML(Standard Generalized Markup Language)에 기반하여 만들어졌기 때문에 DTD[17] 참조가 필요하며, 이 때문에 DOCTYPE 선언을 하려면 공개 식별자와 시스템 식별자가 포함된 긴 문자열을 작성해야 했다. 아래의 DOCTYPE 선언을 보면 알 수 있지만, 사실 이렇게 긴 문자열을 어떻게 외워서 입력하겠는가? 매번 문서마다 복사해서 넣는 수 밖에 없었다.

이전 버전의 DOCTYPE 선언:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd>

※ 이전 버전의 DOCTYPE 문자열

공개 식별자(Public identifier)

시스템 식별자(System identifier)

-//W3C//DTD HTML 4.0//EN

-//W3C//DTD HTML 4.0//EN

http://www.w3.org/TR/REC-html40/strict.dtd

-//W3C//DTD HTML 4.01//EN

-//W3C//DTD HTML 4.01//EN

http://www.w3.org/TR/html4/strict.dtd

-//W3C//DTD XHTML 1.0 Strict//EN

http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

-//W3C//DTD XHTML 1.1//EN

http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd

이런 불편함이 HTML5에서는 개선되었다. 우선 HTML5는 SGML에 기반하지 않기 때문에 DTD 참조가 필요 없고 최소한의 코드를 작성하도록 하는 것이 HTML5의 기본 방향이어서 HTML5에서의 DOCTYPE 선언은 아주 간단한다. 이전 버전과 달리 DTD(Document Type Definition)를 참조할 필요 없이, 문서 형식이 ‘HTML’이라는 사실만 표시하면 된다. 이 때 브라우저가 HTML 문서를 처리하기 전에 해당 문서 유형을 미리 알고 있어야 하므로 DOCTYPE 선언은 HTML 요소 앞에 위치해야 한다.

HTML5의 DOCTYPE 선언:

<!DOCTYPE html>

주석

[16] DOCTYPE 선언은 요소(element)가 아니라 문서에 대한 설명(instruction)이다.

[17] DTD(Document Type Definition) : SGML 계열의 마크업 언어에서 문서형식을 정의하는 것이며, 마크업 구성의 문법을 정의한다(The DTD defines the syntax of markup constructs).