보고서를 작성한다. 팀장에게 보고를 한다. 팀장은 보고서의 한 영역을 찍더니, 이건 무슨 의미로 작성한 건지 물어온다. 나는 답을 할 수가 없었다...
만약 div태그로만 웹 페이지를 만들게 된다면, 위와 같은 상황이 발생하지 않을까 싶다. 아무 의미 없이 작성한 보고서의 한 영역처럼, 의미를 알 수 없는 영역이 될 수 있다.
반대로 요소들의 의미를 고려하여 구조를 설계하고 코드를 작성한 웹은 시맨틱(Semantic)* 웹이라고 한다. 그렇다면 시맨틱 웹은 어떤 장점이 있으며, 시맨틱 웹을 만들기 위해서는 어떤 요소들을 사용하면 되는지 알아보자.
div와 같이 의미가 정해지지 않은 태그들을 검색하는 것 보다, 의미있는 코드들을 해석하는 것이 훨씬 쉬움. Heder와 Footer는 사람의 머리와 발처럼, 주로 웹페이지의 상단과 하단의 정보를 담고 있다.
Header는 대부분 동일함.header내에는 header혹은 footer를 자식 요소로 넣을 수 없음.header와 동일하게 같은 사이트 내에서는 대부분 동일한 디자인을 사용함.footer내에 header나 footer를 자식 요소로 넣을 수 없음.MDN 사이트 예시로 윗 부분(빨강)이 header이고, 아랫부분(파랑)이 footer이다.

nav는 Navigation의 줄임말로, 사용자에게 현재 어느 위치에 있는지 알려주는 역할을 한다.

MDN 문서에서 아래 항목(빨강)이 nav이다.

aside는 주로 side 바에 들어가는 내용을 주로 작성한다.
앞서 nav에서 표시한 사이드 바도 aside태그 내에 nav태그를 넣은 구조이다.

main은 본문을 구성하는 태그이다.
main태그를 여러 번 사용한다면, 보여지는 1개의 main태그를 제외한 나머지는 hidden으로 숨겨야함.<main role="main">이라고 작성해야 함.
article과 section은 비슷하지만 다른 점이 있다.
article은 하나의 태그 속의 내용이 완결되어서, 독립적으로 구분해서 배포하거나 재사용할 수 있음.(신문의 기사 스크랩을 생각하면 쉽다.)article은 자체가 독립적인 컨텐츠이기 때문에 내부에 header와 footer를 가질수 있음.article을 구분하기 위해서 h태그를 제목으로 많이 사용함.section은 article이 될 수 없는 영역에 사용함. 즉, 독립적인 컨텐츠가 될 수 없다면 section을 사용함.div 태그를 사용하는 것이 좋음.article은 내부에 여러 section을 가질 수 있으며, section내에 여러 article들이 있을 수도 있다.

시맨틱 웹을 알아보았다. 아니 시맨틱 웹을 만들 수 있는 방법을 알아보았다. 단순히 태그들을 안다고 해서 시맨틱 웹을 만들 수 있는 것이 아니다. 구성하는 태그들이 어떤 역할을 하고, 내가 넣으려는 요소가 어떤 태그로 써야하는지 많은 생각과 고민이 필요하다. 지금은 div태그로 모든 것을 만들고 있지만, 시맨틱 웹을 만들기 위해서는 오늘 소개한 태그들을 열심히 또 열심히 써야한다. 오늘도 더 나은 웹을 만들기 위해 시맨틱 태그들로 연습을 해보련다!
*Sementic: 의미의, 의미론적인