웹 표준에서는 HTML을 시멘틱(semantic)하게 작성하는 것의 중요성을 강조한다.
이 두 단어를 합쳐서 만든 시맨틱 HTML은 HTML이 구조를 만드는 것을 넘어 의미를 갖도록 만들겠다는 의도가 담겨있다고 할 수 있다.
<div>
와 <span>
으로 화면 구성하기HTML에는 많은 종류의 요소가 있다. 하지만 어떤 요소를 가지고 있는지 전부 알지 못해도, <div>
와 <span>
두 가지의 요소만 알면 충분히 화면의 구조를 만들 수 있다.
하지만 위 이미지로는 화면이 어떤 구조로 나누어져있는지 까지만 알 수 있고, 어떤 내용이 들어갈지는 명시되어 있지 않아 알수가 없다.
이번엔 화면을 같은 구조로 나누되, 다른 종류의 요소를 사용한 예시 이다.
<div>
와 <span>
요소로만 화면을 구성했을 때와 비교하면, 각 요소의 이름만 보고도 화면에서 어떤 역할을 하게 될 지, 어떤 내용을 담게 될지 보다 더 명확하게 알 수 있게 된다.
요소의 이름에 맞게 화면을 구성한다면, <header>
는 헤더의 역할을, <nav>
는 네비게이션 바 역할을 하게 된 다는 것을 알 수 있다.
이처럼 요소가 어떤 내용을 담게 될지, 어떤 기능을 하게 될지 확실하게 의미를 가지고있는 요소를 시맨틱 요소라고 한다.
그리고 시맨틱 요소를 적절하게 사용하여 구성한 HTML을 시맨틱 HTML이라고 한다.
개발자간 소통
여러 명의 개발자가 웹 페이지를 개발하면서 <div>
와 <span>
으로만 HTML 코드를 작성한다고 생각 해보자 그러면 요소의 이름을 보고서는 각 요소가 어떤 기능을 하는지 전혀 파악 할 수 없기 때문에 주석을 작성해 설명하거나 <id>
나 <class>
를 사용해 일일이 표기해야한다.
만약 id
와 class
를 사용할 경우에는 이름은 어떻게 지을 것인지도 협의해서 정해야 하고, 다른 개발자에게 id
와 class
이름이 어떤 의미인지 설명하는 시간도 추가로 필요하게 된다.
이런 귀찮은 과정을 시맨틱한 요소를 사용하기만 해도 없앨 수 있다.
<div>
와 <span>
만 사용한 문서에서는 모든 요소가 비슷한 중요도의 내용을 담고 있다고 판단한다.