우리는 당신이 HTML5의 웹 폼, canvas, 로컬 스토리지 같은 멋지고 훌륭한 기능을 곧바로 배우고 싶어하는 것을 잘 알고 있습니다. 하지만 지금 당장 개발을 시작해야 하더라도 먼저 기초를 단단히 다지는 것이 중요합니다. 그러니 HTML5에 대한 기본적인 내용을 좀 짚고 넘어갑시다.
HTML5란?
HTML5는 W3C (World Wide Web Consortium)에서 개발하고 있는 명세입니다. 이 글을 쓰는 시점(2011. 11 기준)에서 HTML5 명세는 공식적으로 초안 상태이며 명세가 권고되기 전에 다른 판본이 발행될 수 있습니다. 그런 후에 권고는 공식적인 검증 절차를 거쳐서 마크업 언어 버전으로 완성됩니다. W3C와는 별도로 WHATWG (Web Hypertext Application Technology Working Group)에서도 HTML 명세를 개발하고 있습니다.
제가 버전 번호를 언급하지 않았다는 것을 눈치채셨나요? WHATWG에서는 개발 방침을 바꿔서 HTML의 버전을 완전히 없애기로 결정했기 때문입니다. WHATWG에서는 HTML을 '살아있는 표준'으로 정의합니다. 이 새로운 개발 모델은 HTML을 특정 시점에 묶인 고정된 버전이 아니라 계속 발전하는 상태로 정의하는 것입니다.
브라우저 버전이 아닌 기능 지원
WHATWG의 선언이 디자이너와 개발자에게는 어떤 의미가 있을까요? WHATWG의 선언은 완전한 명세보다는 개별 기능을 구현하는 것에 더 집중하겠다는 뜻입니다. 즉 '이 사이트는 HTML5 사이트입니다'가 아니라 '이 사이트는 웹 소켓과 지오로케이션을 지원합니다'라는 것이죠.
반면 업계에서는 디자이너와 개발자가 사이트를 효율적으로 점검하고 관리할 때 참고할 수 있도록 안정된 명세가 필요하다고 주장하기도 합니다. 또 '지금은 이게 맞다'고 말할 수 있는 근거, 즉 버전이 있어야 웹 문서를 만들고 교육할 때 관리하기 편하다고 주장하기도 합니다. 결국 이건 괴짜들만 좋아하는 주제일 수도 있습니다. 배트맨이 스파이더맨보다 강하다는 데 저녁 값을 걸겠다거나 하는 것처럼 말이죠. 우리가 여기서 이 문제를 언급하는 이유는 HTML에 두 가지 개발 모델이 있다는 것, 명세화 과정에 제법 재미있는 정책이 끼어 있다는 것을 이야기하려는 것입니다.
살아있는 HTML5
WHATWG에서 'HTML'을 버전 번호가 필요없는 살아있는 문서로 간주하긴 하지만 우리는 이 책에서 'HTML5'라는 단어를 사용합니다. 왜일까요? 우리가 일상적으로 개발하고 디자인하는 작업에는 기능을 이해하고 구현하는 것이 중요하기 때문입니다.
『HTML5 Cookbook』의 요점은 여러분이 '오늘 당장 쓸 수 있는 레시피'이므로 이제 HTML5 지원에 대해 얘기합시다. 일반적으로 최신 브라우저는 HTML5를 잘 지원합니다. 하지만 이전 버전과 마찬가지로 HTML5를 100% 지원하는 브라우저는 없으므로 우리의 슬픈 백일몽은 이번에도 이루어질 수 없을 것 같습니다.
자바스크립트를 배우세요
HTML5 마크업에 추가된 새로운 기능은 다양한 웹 기술과 연관되어 있으며 대부분은 웹페이지에서 사용할 때 자바스크립트 API에 의존합니다. 따라서 HTML5와 연관된 기술을 충분히 음미할 수 있도록 자바스크립트를 상세히 설명할 것입니다.
자바스크립트에 익숙하지 않거나 두렵다면 이 기회를 통해 자바스크립트 기술을 익히길 권합니다. HTML5를 제대로 배우려면 자바스크립트 일부에라도 익숙해져야 할 것입니다.
많은 API가 여전히 발전하는 중이며 이 책을 쓰고 있는 지금도 계속해서 작성되고, 수정되고, 개정판이 발행되고 있습니다. 그 중 일부 API는 다른 것에 비해 좀 더 완성도가 높으며 더 안정적이기도 합니다. 웹페이지에 HTML5 기술을 어떻게 적용할 것인지 판단할 때는 다양한 API가 지금도 매우 자주 바뀌고 있다는 것을 염두에 두어야 합니다.