결론부터 말하면: HTML5에서는 필수가 아닙니다
HTML5가 도입되면서 여러 개선 사항이 함께 적용되었는데, 그중 하나가 바로 <script> 태그의 type 속성이 선택 사항이 되었다는 점입니다. HTML5와 최신 브라우저 환경에서는 자바스크립트(JavaScript)가 기본 스크립팅 언어로 지정되었기 때문에, 더 이상 text/javascript 값을 명시적으로 작성할 필요가 없습니다.
과거에는 왜 필요했을까?
HTML4나 XHTML 시절에는 브라우저에게 사용 중인 스크립팅 언어가 무엇인지 알려주기 위해 type 속성을 명시하는 것이 권장되었습니다. 당시의 코드는 보통 다음과 같이 작성되곤 했습니다.
<html>
<body>
<script language="javascript" type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
</body>
</html>
위 예제처럼 예전 코드에서는 language 속성과 함께 type="text/javascript"를 지정했고, 심지어 HTML 주석(<!-- -->)으로 스크립트 내용을 감싸서 자바스크립트를 지원하지 않는 구형 브라우저까지 고려하는 모습도 볼 수 있었습니다.
현대적인 작성 방식
오늘날에는 훨씬 간결하게 작성할 수 있습니다.
<script>
document.write("Hello World!");
</script>
브라우저가 자바스크립트를 기본값으로 인식하기 때문에, 위 코드는 type 속성을 넣은 코드와 정확히 동일하게 동작합니다.
정리
- HTML5 문서에서는
type="text/javascript"를 생략해도 됩니다. - 자바스크립트가 기본 언어이므로 최신 브라우저는 자동으로 이를 인식합니다.
- 단, ES 모듈을 사용할 때처럼
type="module"과 같은 특수한 타입이 필요한 경우에는 type 속성이 여전히 유용하게 쓰입니다. - 레거시 브라우저 지원이 필요한 오래된 프로젝트라면 명시적으로 남겨두는 것도 하나의 방법입니다.