보고서를 작성한다. 팀장에게 보고를 한다. 팀장은 보고서의 한 영역을 찍더니, 이건 무슨 의미로 작성한 건지 물어온다. 나는 답을 할 수가 없었다...
만약 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: 의미의, 의미론적인