HTML의 시맨틱 요소는 단순히 레이아웃을 구성하는 것을넘어, 태그 자체에 명확한 의미를 부여하는 요소입니다. 브라우저, 검색 엔진, 스크린 리더 등은 이러한 태그를 통해 문서의 구조와 내용을 이해합니다. 이는 코드의 가독성과 접근성을 높이고, SEO(Search Engine Optimization)에도 긍정적인 영향을 미칩니다.
1.
<header>: 문서나 섹션의 머리글
<header>는 페이지 전체나 개별 섹션의 머리글을 정의하는 데 사용됩니다. 로고, 네비게이션 메뉴, 제목 등이 포함될 수 있습니다.
<header>
<h1>My Website</h1>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
</ul>
</nav>
</header>
2.
<nav>: 탐색 링크 그룹
<nav>는 주요 네비게이션 링크를 그룹화합니다. 사이트의 주요 메뉴나 페이지 링크를 정의할 때 사용합니다.
<nav>
<ul>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>
3.
<main>: 문서의 주요 콘텐츠
<main>은 페이지에서 핵심 콘텐츠를 간싸는 요소입니다. 각 페이지에서 한 번만 사용해야 하며, <header>나 <footer> 같은 반복적인 영역을 제외한 부분에 사용됩니다.
<main>
<h2>Welcome to My Blog</h2>
<p>This is the main content of the page.</p>
</main>
4.
<article>: 독립적인 콘텐츠
<article>은 문서 내의 독립적인 구성을 나타냅니다. 독립적으로 나뉠 수 있거나 다시 사용될 수 있는 곳에 사용할 수 있습니다.
그러므로 꼭 신문 기사나 블로그 기사에만 쓰는 것은 아닙니다.
<article>
<h2>How to Cook Pasta</h2>
<p>Pasta is a staple in many cuisines...</p>
</article>
5.
<section>: 주제를 가진 콘텐츠 그룹
<section>은 콘텐츠를 주제별로 나누어 그룹화할 때 사용합니다. 제목(<h1>~<h6>)와 함께 사용해 의미를 명확히 해야 합니다.
<section>
<h2>About Us</h2>
<p>We are a company that specializes in...</p>
</section>
6.
<aside>: 부가적인 정보
<aside>는 본문과 간접적으로 관련된 부가 정보를 나타냅니다.
광고, 관련 링크, 추가 정보 등을 표시할 때 유용합니다.
<aside>
<h3>Related Articles</h3>
<ul>
<li><a href="/article1">Article 1</a></li>
<li><a href="/article2">Article 2</a></li>
</ul>
</aside>
7.
<footer>: 문서나 섹션의 바닥글
<footer>는 저작권 정보, 연락처, 하단 링크 등 문서의 끝부분을 정의합니다.
<footer>
<p>© 2025 My Blog. All rights reserved.</p>
</footer>
8.
<figure>와<figcaption>: 이미지와 설명
<figure>는 이미지, 차트, 코드 스니펫 등 독립적인 콘텐츠를 감싸는 요소이며, <figcaption>은 이에 댜한 설명을 추가합니다.
<figure>
<img src="pasta.jpg" alt="A bowl of pasta">
<figcaption>Figure 1: Delicious pasta</figcaption>
</figure>
<time> : 날짜와 시간<time>은 날짜나 시간을 나타냅니다.
특정 이벤트의 시간을 명시하거나, 기계가 이해할 수 있는 형식으로 시간을 제공할 때 유용합니다.
<time datetime="2025-01-07">January 7, 2025</time>
제네릭 요소는 <div>와 <span>처럼 구조적 의미가 없는 태그로, 레이아웃과 스타일링을 위해 사용됩니다.
반면, 시맨틱 요소는 태그 자체가 명확한 의미를 가지므로, 문서의 구조를 정의하고 콘텐츠의 의미를 전달합니다.
<article>은 독립적인 콘텐츠임을, <header>는 머리글임을 의미합니다.<div>는 블록 요소로 어떤 의미도 전달하지 않습니다.가독성 향상: 코드를 읽는 사람이 각 요소의 목적을 쉽게 파악할 수 있습니다.
SEO 개선: 검색 엔진이 문서의 구조를 이해하고 콘텐츠를 더 잘 인덱싱할 수 있습니다.
접근성 강화: 스크린 리더는 시맨틱 요소를 통해 콘텐츠의 의미를 사용자에게 더 명확히 전달합니다.
유지보수 용이: 시맨틱 요소를 사용하면 코드 구조가 체계적으로 유지되므로 수정이 쉬워집니다.
Semantics - MDN Web Docs 용어 사전
Udemy 강의 - The Web Developer 부트캠프 2025