#1 DOCTYPE 선언 참고: http://www.tcpschool.com/html-tags/doctype
DOCTYPE 선언은 HTML 문서에서 <html> 태그를 정의하기 전에 가장 먼저 선언 되어야 한다.
DOCTYPE 선언은 HTML 태그는 아니다. 단지 선언된 페이지 HTML 버전이 무엇인지를 웹 브라우저에 알려주는 역할을 하는 선언문이므로, 대소문자를 구분하지 않는다. (특별한 경우가 아닌 이상 대소문자를 딱히 구분하지 않지만, DOCTYPE 부분은 대문자로 적는 것이 좋다.)
HTML5는 SGML 기반으로 하지 않기 때문에 DTD를 참조할 필요가 없다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>HTML !DOCTYPE declaration</title>
</head>
<body>
<p>이 문서는 HTML 문서입니다.</p>
</body>
</html>
#2 DTD (Document Type Definition) 참고: 나무위키
예를 들어, XHTML의 경우 아래와 같은 DOCTYPE을 사용한다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
저기서 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd 부분이 DTD 파일이다. 메모장으로 열면 아-주 복잡한 게 난잡하게 쓰여 있을 것이다.
실제로 XHTML을 제외하고 개발자들이 접하게 되는 대다수의 XML 파일은 대개 프로그램 내적으로 처리하기 때문에 소스 뜯어봐도 DTD 파일이 안 써있는 경우가 많다.
이것과는 별도로 보고자 하는 XML이 원래 브라우저용이 아닌데 브라우저에 제대로 보이게 하려면 XSL(eXtensible Stylesheet Language)이라는 것을 또 따로 써줘야 한다. IIS 로그에 익숙한 사람들이나 Windows Live Messenger의 대화록을 열어본 경우 얘네가 왜 브라우저로 보이는지 의문을 가졌을 수 있을 텐데, 그 배후에는 DTD가 아니라 XSL이 있는 것이다.
HTML5는 XHTML에서 형식상 많은 부분을 가져오기는 했지만 어쨌든 XML은 아니기 때문에 DTD 파일 경로를 쓰지 않고
<!DOCTYPE html>
그냥 이렇게 쓰면 독타입 선언이 끝난다. 그리고 이걸 어떻게 파싱할까는 그냥 브라우저 내부에서 결정한다.
#3 HTML5 참고: https://namu.wiki/w/HTML5
WHATWG와 W3C가 발표하는 HTML의 최신 버전으로, 2014년 10월 28일 완전히 표준화되었다. (XHTML에서 다시 HTML로 회귀하게 되었다고... )
따라서 HTML5는 XHTML의 상위 버전이 아니라, HTML4.01의 상위 버전이다. 어도비 플래시나 실버라이트 등의 플러그인을 기반으로 하는 응용 프로그램에 대한 필요성을 줄이는 것에 초점을 맞추고 있다.
HTML5라고 불리는 개념은 단순히 웹 문서를 작성할 때 사용되는 마크업 랭귀지(HTML)의 문법적(syntactic) 버전뿐만 아니라 새로운 DOM API 스펙을 포함하는 것이다.
문법면에서는 이전에 비해 상당히 간결하고 명확해졌다. XHTML에 있던 XML 문법도 모두 제거되어 HTML 4.01의 방식으로 돌아갔다.
또한 이전에는 JavaScript를 사용해서 엄청나게 긴 코드를 써서 간접적으로 구현해야 했던 기능들이 정식 엘리먼트로 편입됨으로써(예를 들어 <video>) 간단하게 구현해낼 수 있게 되었고, 불필요하게 길게 적어야 했던 이전 버전에서 꼭 필요한 부분만 남기도록 바뀌는 등 여러가지 개선점이 생겼다.
API면에서, HTML5에서는 비디오 및 오디오와 같은 미디어 엘리먼트에 대한 API를 포함해 오프라인 웹 앱 구현, 문서 편집 등과 같은 다양한 기능에 대한 API가 추가되었으며, WHATWG에 의해 Geolocation, Web SQL, File API, Audio API등이 “Living standard”로 권고되고 있다.
이를 통해 이전에는 플래시, 실버라이트 등의 외부 플러그인을 통해서만 지원할 수 있던 클라이언트 사이드에서의 사용자 인터페이스를 위한 기능들의 상당수를 브라우저 자체의 기능을 이용해 구현할 수 있게 되었다.
이런 API들은 사실상의 브라우저 표준 스크립트 언어인 JavaScript를 통해 이용할 수 있다. HTML5 그 자체가 제공하는 것은 문서 구조와 API이고, 이걸 API와 연결시켜 실제 동작을 구현하는 것은 JavaScript라는 언어다.
이 둘은 엄연히 별개의 것이므로 HTML5와 JavaScript가 서로 연결되어 돌아가는 개념이지, HTML5 안에 JavaScript가 포함되는 것이 절대로 아니다.
'HTML' 카테고리의 다른 글
006. <input> (0) | 2022.09.25 |
---|---|
005.<select> (0) | 2022.09.25 |
004.<span> (1) | 2022.09.25 |
003. <option> (0) | 2022.09.24 |
002. <label> (0) | 2022.09.21 |