|
HTML5 로고 |
1. 개요
WHATWG[1]와 W3C가 발표하는 HTML의 최신 버전으로, 2014년 10월 28일 완전히 표준화되었다. XHTML에서 다시 HTML로 회귀하게 되었다. 따라서 HTML5는 XHTML의 상위 버전이 아니라, HTML4.01의 상위 버전이다. 완전히 XHTML 문법을 버린 것은 아니고 선택적으로 이용할 수 있게 되어있다. 어도비 플래시나 실버라이트 등의 플러그인을 기반으로 하는 응용 프로그램에 대한 필요성을 줄이는 것에 초점을 맞추고 있다. 이러한 방향성 덕분에 한국에서는 웹 표준에 대한 문제가 이슈로 떠오르면서 함께 주목을 받기도 하였다.HTML5라는 말은 의미가 넓어져, 꼭 W3C의 HTML5 표준만이 아닌 최신 웹 기술(HTML Living Standard, CSS3+, ECMAScript 6+ 등)을 통틀어 칭하기도 한다. HTML5가 상용화되면서 어도비 플래시, 자바 애플릿, 실버라이트 등 기존의 플러그인 기술은 지원 중단 절차를 밟게 되었다.
W3C의 HTML5 표준이 5.3을 마지막으로 WHATWG HTML Living Standard로 통합되면서, 협의의 HTML5는 없어지고 최신 웹 기술을 의미하는 광의의 HTML5의 의미만이 남았다고 할 수 있다.
2. 역사
W3C는 HTML 4.01 이후 XML 기반의 XHTML로 웹 표준의 방향을 변경하였다. 그러나 XML의 까다로운 문법은 웹 개발자들에게 그리 잘 받아들여지지 못했다.2004년 6월 W3C 회의에서 모질라 재단과 오페라 소프트웨어는 새로운 HTML 표준 제안서를 제출하였다. 그러나 이는 "웹의 혁명을 위한 기존의 지향점에 위배된다"라는 이유로 거절되었다.[2]
2004년 6월, 웹 브라우저 제공 기업인 애플, 모질라, 오페라 소프트웨어의 구성원들이 독자적으로 새로운 웹표준 기관 WHATWG를 설립했다.
WHATWG는 기존의 HTML 등의 웹 기술에 응용 프로그램의 작성을 위한 기능을 추가한 Web Applications 1.0이라는 표준을 정립했다.
2006년 10월 W3C의 팀 버너스 리는 웹의 XML로의 전환이 실패했음을 시인했고, 다음 해인 2007년부터 W3C는 WHATWG와 협업하여 HTML5의 표준을 만들기 시작했다.
한편 WHATWG는 W3C와 협업을 진행하면서도 W3C와는 별도로 독자적인 HTML 표준의 작업을 시작했고, 이후 Web Applications 1.0과 HTML 표준을 합쳐 HTML Living Standard라는 이름으로 발표했다. HTML Living Standard는 W3C의 HTML5와는 달리 버전이 없이 그때그때 업데이트된다.
2014년 10월 28일, HTML5의 최종 권고안이 확정되어 최신 표준으로 지정되었다.
2016년 11월 1일, HTML5의 버전업인 HTML 5.1이 최신 표준으로 지정되었다.
2017년 12월 14일. HTML 5.1의 버전업인 HTML 5.2가 최신 표준으로 지정되었다. 또한 HTML 5.3이 워킹 드래프트 단계에 돌입했다.
2019년 5월 28일. 따로 각자의 표준을 발표하던 W3C와 WHATWG가 이제 함께 표준 작업을 진행하고, 두개의 표준을 단일화해 앞으로 WHATWG가 하나의 표준을 발표하기로 하였다. 즉, HTML5의 표준은 WHATWG의 Living Standard가 유일하게 되었다.
2021년 1월 28일, W3C가 공식적으로 기존의 HTML 5.1, HTML 5.2 표준과 HTML 5.3 표준화 작업을 모두 폐기했다. 이미 2018년에 HTML 4.01, XHTML 1.1, HTML5 등 과거의 표준을 모두 폐기했기 때문에 WHATWG HTML Living Standard만이 HTML 표준이 되었다.
3. 설명
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”로 권고되고 있다.( HTML5에서의 변화(W3C) WHATWG 스펙) 이를 통해 이전에는 플래시, 실버라이트 등의 외부 플러그인을 통해서만 지원할 수 있던 클라이언트 사이드에서의 사용자 인터페이스를 위한 기능들의 상당수를 브라우저 자체의 기능을 이용해 구현할 수 있게 되었다.
이런 API들은 사실상의 브라우저 표준 스크립트 언어인 JavaScript[3]를 통해 이용할 수 있다. 이 때문에 HTML5는 마크업 언어라고만 보기는 더 이상 힘들어졌다. 단, HTML5 그 자체만으로 모든 것이 된다는 오해는 삼가자. HTML5 그 자체가 제공하는 것은 문서 구조와 API이고, 이걸 API와 연결시켜 실제 동작을 구현하는 것은 JavaScript라는 언어로, 이 둘은 엄연히 별개의 것이다. HTML5와 JavaScript가 서로 연결되어 돌아가는 개념이지, HTML5 안에 JavaScript가 포함되는 것이 절대로 아니다. 단적으로, JavaScript는 ECMAScript라는 표준안이 따로 나오는 별도의 프로그래밍 언어이다.
Internet Explorer는 9부터 일부 태그를 지원하기 시작했고, 10이후 거의 대부분 지원한다. 8 이하를 지원하려면 html5shiv.js[4]라는 JavaScript를 이용하면 된다. 단 이 경우 JavaScript를 사용하기에 페이지 렌더링 속도가 느려진다는 단점이 있다. 그리고 위의 브라우저 API를 이용하는 기능들은 사용이 불가능하다. 이 JavaScript가 대체하는 것은 HTML5의 마크업뿐이기 때문이다. 2022년 현재는 IE 10 이하 버전은 모두 지원이 종료되었으므로 굳이 이 자바스크립트를 쓸 필요가 없다.
W3C의 HTML5와 WHATWG의 HTML Living Standard는 꼭 발표 시기에 따른 차이점만 있는 것은 아니고, 각 그룹의 논의 결과에 따라 한쪽에서만 표준으로 채택되기도 했다. 아직까지 비교적 사소한 부분에 한하고 있으나 언제 또 큰 차이가 발생할지 모를 일이다. 따라서 두 그룹은 표준을 WHATWG의 HTML Living Standard로 단일화시켰다.
4. 변경사항
HTML5로 접어들어 HTML이 다양한 기능을 포함하면서 새롭게 추가된 태그들과 의미가 변경된 태그들이 여럿 있다.HTML5 과 HTML4 비교했을 때, HTML5에서 미디어, 기능 등의 부분에서 많은 개선이 이루어졌다.
4.1. 선언문
이전 버전의 HTML과 XHTML이 유효성 검사를 위한 선언문이 쓸데없이 길었던 반면, HTML5에서는 간단하게 몇 자만 적으면 된다.#!syntax xml
<!DOCTYPE html>
특별한 경우가 아닌 이상 대소문자를 딱히 구분하지 않지만, DOCTYPE 부분은 대문자로 적는 것이 좋다.HTML 문법을 사용할 때는 위 선언문을 반드시 적어야 하며[5], XML 문법을 사용하는 경우에는 선언문을 적지 않아도 된다.
4.2. 시맨틱 태그
<table>
대신 <div>
를 쓸 것을 권장했더니 그 부작용으로 코드가 온통 <div>
투성이라 알아보기 어렵다는 지적이 있었다. 그래서 HTML5에서 나온 것이 시맨틱 태그이다.자세한 내용은 HTML/태그 문서 참고하십시오.
5. 기타
2012년 12월 17일자로 권고 후보안(Candidate Recommendation)으로 등록되어 표준 지정을 기다리고있다. 표준화 일정에 따르면 2014년 4분기까지는 표준을 제정하고, 처리하기 힘든 문제들은 HTML 5.1 이상의 버전에서 다룰 예정이었고, # 결국 2014년 10월 28일 최종 권고안이 확정, HTML의 최신 표준으로 지정되었다.koreahtml5에서 브라우저 수용도 등을 알려준다.
HTML5test에서 태그 지원 여부를 확인할 수 있는데, 현재도 만점(555점)을 기록한 웹 브라우저는 아직 없다.[6][7][8]
other browsers 항목에서 집계된 점수들을 볼 수 있는데, 단, 대체로 약간 과거의 기록이니 주의.[9] 2022년 기준 보여주는 웹 브라우저 순위는 다음과 같다.
- 크롬 67 - 528점 (모바일 486점)
- 오페라 45 - 518점 (모바일 481점)
- 파이어폭스 59 - 497점 (모바일 466점)
- 엣지 17 - 496점 (태블릿 492점, 모바일 444점)
- Safari 11.1.1 - 477점 (모바일은 iOS11.3 477점)
- Internet Explorer 11 - 312점 (태블릿 312점, 모바일 310점)[10]
- 비발디 1.4 499점
- 삼성 인터넷(모바일) 517점
현재 크롬은 57.0.2926.0 519점 기록.(모바일 54.0.2840.85 500점 기록) 오페라 41.0 496점 기록. 파이어폭스 52.0 479점 기록.(모바일 52.0 482점 기록) 크롬이 독보적으로 앞서고 있다.[11] 사파리 15.1 515점 기록(모바일 iOS 17 최대 519점 기록). Living standard만이 표준으로 남게 됨으로써 이 점수 자체의 의미는 없어졌다.
플래시나 NPAPI에 의존하지 않고 직접 동영상을 실행할 수 있게 되면서 곤란한 점도 생겼는데, 플래시 시절과 달리 원하지 않는 동영상이나 광고화면 차단이 원천적으로 불가능하다는 것이다. 일단 파이어폭스의 경우 about:config로 들어가서 해결할 수 있으며, 애드온을 깔아도 되고, 크롬도 애드온을 깔면 되지만, 유튜브 등 애드온에서 커버하는 몇몇 사이트 말고는 동영상이나 움짤 차단이 불가능하다. 그리고 엣지는 아예 동영상 기능 해제가 불가능하다. 결국 플래시/NPAPI 시절과 달리 인터넷을 보는 사람이 알아서 자동 재생을 주의해야 하는 시대가 찾아온 것. 이러한 문제를 의식하고, Safari 11에서는 HTML 미디어 요소를 자동으로 재생하는 것을 막아주는 기능이 추가되었다. 이외에도 동영상/음악 불펌을 막을 수 없다는 문제도 있다.[12]
어도비 플래시의 지원 종료로 플래시 게임의 대체재로서 HTML5 게임이 주목받고 있다. 또한 HTML5로 플래시 아카이브를 돌리는 플래시 콘텐츠 사이트도 속속 등장하고 있다.
6. 논란
6.1. XSHM 공격의 근원(?)
자세한 내용은 XSHM 문서 참고하십시오.6.2. DRM 포함 찬반 논란
최근엔, HTML5에 DRM 기술의 도입을 두고 논란이 되고 있다. EFF 등 자유 진영 단체들은 성명을 내고 "DRM로 영상이 암호화되면 영상 검열은 물론, 자막 달기나 번역 같은 자동화 작업들이 힘들어진다. 특히, 빛 과민성 간질 방지를 위한 영상 조절이 불가능할 것이며, 암호화 표준은 있지만 복호화 표준은 없어 새로운 브라우저 등을 만들 때 복호화 기술에 대한 라이센스를 얻어야 하는 진입장벽이 발생할 것으므로, 이는 곧 인터넷 자유에 대한 심각한 침해행위이다."라고 주장하고 있다.물론 반론도 만만치 않다. W3C 측의 팀 버너스 리 등 DRM 옹호론자들은 "이러한 표준이 있을 경우 다른 표준 기술들과 함께 컴파일되어 더 편리한 접속이 가능할 것이며, 개발자들이 따로 플러그인을 제작할 필요가 없어 개발이 더 수월해지며, 브라우저 사용자들은 자신들이 어떠한 정보를 보내고 싶은지 선택할 수가 있게 되어 더 좋은 사생활 보호가 가능할 것이며, DMCA 등과 같은 법률 등을 바탕으로 EME를 이용하여 개인 정보 보호 연구와 같은 활동들을 막지 않는 것이 좋을 것."이라 주장했다.
자세한 것은 아래 링크를 참고할 것.
HTML5 표준, DRM 도입 찬반 논란
HTML5의 DRM, EME가 W3C에서 승인.(루리웹)
기고 | DRM, 오픈 웹과 공존할 수 있을까?
2017년 9월 18일, 결국 W3C는 DRM 기술인 EME을 권유 수준으로 승격시켰다. 이 과정에서 전자 프런티어 재단이 끝까지 반대하여 W3C을 탈퇴했지만, 이미 관련 단체나 기업에서 EME을 활용하고 있어 조만간 표준화될 예정이다.( #)
7. 관련 문서
[1]
구글,
마이크로소프트,
애플,
모질라 재단이 2004년에 설립한 웹 표준 협의체
[2]
이는 당시 전 세계 최고 점유율을 가진
Internet Explorer가 사실상 웹 표준 브라우저가 되고 마이크로소프트는 XHTML을 밀고 나갔기 때문이다.
[3]
이론적으로는 다른 스크립트 언어라도 관계없다.
[4]
jQuery를 만든 존 레시그가 만들었다.
[5]
선언문을 적지 않으면 쿼크 모드, 즉 비표준 문법으로 인식하기 때문에 페이지가 깨져서 보이거나 일부 기능이 제대로 작동하지 않는 등의 문제가 발생한다.
[6]
그래도 버전에 따라 조금씩 오르고 있다. 크롬 54 - 499점 → 64 - 528점, 파폭 49.0.2 - 468점 → 58 - 486점 등. 그리고 엣지와 파폭은 지원 준비중인 기능이 많아서 experimental 항목에 등재된 All flags enabled 점수를 보면 각각 494점, 484점이 나온다.
[7]
2018년 6월 기준 만점은 커녕 데스크탑용 크롬의 528점이 최고이며,
이쪽 계열을 제외하면 500점 나오는 브라우저조차 없다. 정식 버전 기준 파폭 61버전이 497점, 윈도우10 레드스톤 4의 엣지 42 버전이 492점이다.(
#) 모바일 쪽에
삼성 인터넷이 517점이 나오나 애초에
블링크 엔진 기반이다. 이후 2019년 Firefox가 모바일(68.0)과 데스크탑(69.0 / 513점)에서 500점을 넘기기 시작했다.
[8]
링크에서 최근 테스트 결과를 볼 수 있는데, 2022년 4월 현재에도 크롬의 528점을 넘는 타 브라우저는 아직 없다.
[9]
계속 업데이트가 반영되긴 하나 조금 느리다. 2018년 6월 기준 크롬은 67 버전, 파폭은 61 버전이 정식으로 나왔는데 저 페이지는 각각 66 버전, 59 버전을 현재 버전으로 보여준다.
[10]
개발이 중지되어서 재개되지 않는 한 더 이상 점수가 올라갈 가능성이 없다.
[11]
다만 iOS용 모바일 크롬은 60.0.3112.89 버전에서 440점으로 기록된다. 애플 정책상 내부적으로 사파리와 동일하기 때문으로 보인다.
[12]
사실 인터넷이 열린 공간이라는 것을 감안할 때, 인터넷에 올린다는 것은
암묵적으로 올린 정보를 공유하겠다는 의미가 되는 것이다.