웹 페이지를 만들 때 뼈대를 세우는 역할은 당연히 HTML이 하죠! HTML 태그들로 구조를 잡는데, 그중에서도 시맨틱 태그(Semantic Tag)라는 특별한 친구들이 있어요. 이 태그들을 잘 쓰면 코드 읽기가 훨씬 편해지고, 검색 엔진 최적화(SEO)에도 좋다고 하는데요. 😉
오늘은 이 시맨틱 태그가 도대체 뭐고, 어떤 종류가 있는지, 그리고 어떻게 활용하는지 쉽고 재미있게 알아볼게요!
'시맨틱(Semantic)'이라는 말은 '의미론적인'이라는 뜻이에요. 즉, 태그 이름 자체에 의미가 담겨있다는 거죠! 예를 들어 <header>
라는 태그를 보면 "아! 여기는 페이지나 섹션의 머리글 부분이구나!" 하고 바로 알 수 있잖아요?
이런 시맨틱 태그들은 브라우저나 검색 엔진, 그리고 우리 동료 개발자들에게 "이 부분은 이런 의미를 가진 영역이야!"라고 명확하게 알려주는 역할을 해요.
반면에 우리가 정말 자주 쓰는 <div>
나 <span>
같은 태그들은 비(非)시맨틱 태그라고 불러요. 얘네들은 그냥 영역을 나누거나 스타일을 입히기 위한 용도일 뿐, 그 자체로는 특별한 의미가 없거든요. 그냥 네모 박스나 글자 묶음 그 이상도 이하도 아니죠.
HTML5에는 다양한 시맨틱 태그들이 있는데요, 자주 쓰이는 대표적인 친구들을 만나볼까요?
<header>
머리글 담당!웹 페이지 전체 또는 특정 섹션(구역)의 머리글 부분을 나타내요. 보통 웹사이트 로고, 페이지 제목, 주요 네비게이션 메뉴 등이 이 안에 들어간답니다.
<header>
<h1>우리 회사 웹사이트</h1>
<nav>
<ul>
<li><a href="#home">홈</a></li>
<li><a href="#about">회사 소개</a></li>
</ul>
</nav>
</header>
<footer>
바닥글 담당!이름 그대로 페이지나 섹션의 바닥글 부분을 의미해요. 주로 저작권 정보, 만든 사람 연락처, 관련 사이트 링크 같은 것들이 들어가죠.
<footer>
<p>© 2025 우리 회사. 모든 권리 보유.</p>
<p>연락처 062-XXX-XXXX</p>
</footer>
<nav>
길 안내 담당! (네비게이션)웹사이트의 주요 메뉴(네비게이션 링크)들을 그룹으로 묶을 때 사용해요. 사용자가 사이트 내 다른 페이지로 쉽게 이동할 수 있도록 도와주는 길잡이 역할이죠! 보통 <header>
나 <footer>
안에 많이 들어가요.
<nav>
<ul>
<li><a href="/products">제품 소개</a></li>
<li><a href="/services">서비스 안내</a></li>
<li><a href="/contact">문의하기</a></li>
</ul>
</nav>
<article>
독립된 글 담당!하나의 독립적인 콘텐츠(글)를 나타낼 때 사용해요. 예를 들어 블로그 게시물 하나, 뉴스 기사 한 편, 포럼 글 하나하나가 <article>
이 될 수 있어요. 이 자체만으로도 완전한 하나의 글이 되는 거죠.
<article>
<h2>React Hooks 완벽 정리</h2>
<p>useEffect는 컴포넌트 렌더링 후에...</p>
<footer>작성자 Aiden, 작성일 2025-04-24</footer>
</article>
<section>
연관된 구역 담당!페이지 안에서 서로 관련 있는 내용들을 하나의 구역으로 묶을 때 사용해요. 보통 제목 태그(<h1>
~<h6>
)와 함께 쓰여서 그 구역이 어떤 주제를 다루는지 명확하게 나타내죠. <article>
보다는 좀 더 일반적인 구역을 나눌 때 사용한다고 생각하면 좋아요.
<section id="contact-info">
<h2>연락 정보</h2>
<p>궁금한 점이 있으시면 아래 방법으로 연락주세요.</p>
<ul>
<li>이메일 support@example.com</li>
<li>전화 02-XXX-XXXX</li>
</ul>
</section>
<aside>
핵심 옆 곁다리 정보 담당!페이지의 주요 내용과는 조금 떨어져 있지만, 그래도 관련된 부가 정보를 담는 영역이에요. 예를 들면 블로그 글 옆에 나오는 관련 글 목록, 광고 배너, 용어 설명 같은 것들이 <aside>
에 해당될 수 있어요. 사이드바 영역을 만들 때 자주 쓰이죠.
<aside>
<h3>함께 보면 좋은 글</h3>
<ul>
<li><a href="#">useEffect 완벽 가이드</a></li>
<li><a href="#">React 상태 관리 전략</a></li>
</ul>
</aside>
<main>
진짜 주인공 담당!이름처럼 해당 웹 페이지의 가장 핵심적인 주요 콘텐츠를 담는 영역이에요. 다른 시맨틱 태그들(header
, footer
, nav
, aside
)을 제외하고, 정말 이 페이지의 본문 내용을 나타내는 부분이죠. 중요한 점은, 한 페이지에 <main>
태그는 딱 한 번만 사용해야 한다는 거예요! 주인공은 여러 명일 수 없잖아요? 😉
<main>
<h1>여행 후기 공모전</h1>
<p>여러분의 멋진 여행 이야기를 들려주세요!</p>
<section>...</section>
<article>...</article>
</main>
자, 그럼 배운 태그들을 활용해서 간단한 블로그 페이지의 기본 구조(뼈대)를 한번 만들어 볼까요?
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Aiden의 개발 블로그</title>
<link rel="stylesheet" href="style.css"> </head>
<body>
<header>
<h1>Aiden의 개발 블로그</h1>
<nav>
<ul>
<li><a href="/">홈</a></li>
<li><a href="/about">소개</a></li>
<li><a href="/posts">글 목록</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>시맨틱 태그란 무엇일까?</h2>
<p>시맨틱 태그는 웹 페이지 구조를 의미론적으로...</p>
<section>
<h3>주요 시맨틱 태그 소개</h3>
<p>header, footer, nav...</p>
</section>
<footer>
<p>작성일 2025년 4월 24일</p>
</footer>
</article>
{/* 다른 글이 있다면 여기에 <article> 추가! */}
</main>
<aside>
<h3>카테고리</h3>
<ul>
<li><a href="#">React</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML/CSS</a></li>
</ul>
<h3>최근 글</h3>
<ul>
<li><a href="#">useEffect vs useLayoutEffect</a></li>
</ul>
</aside>
<footer>
<p>© 2025 Aiden Hong. All rights reserved.</p>
</footer>
</body>
</html>
어떤가요? <div>
태그만 사용해서 구조를 짜는 것보다 훨씬 더 명확하게 각 영역의 역할이 보이지 않나요? 😊
HTML5 시맨틱 태그를 사용하면 웹 페이지의 구조를 의미론적으로 명확하게 표현할 수 있어요. 이건 단순히 코드를 보기 좋게 만드는 것뿐만 아니라,
물론 <div>
나 <span>
도 필요할 때는 써야 하지만, 이왕이면 <header>
, <footer>
, <nav>
, <article>
, <section>
, <aside>
, <main>
처럼 의미가 명확한 시맨틱 태그를 적극적으로 활용하는 습관을 들이는 게 좋겠죠? 😉