웹페이지 구조, 시맨틱 태그로 똑똑하게 짜는 법! (HTML5) 🧠

홍태극·2023년 8월 29일
0

웹페이지 구조, 시맨틱 태그로 똑똑하게 짜는 법! (HTML5) 🧠

웹 페이지를 만들 때 뼈대를 세우는 역할은 당연히 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>
  <p>&copy; 2025 우리 회사. 모든 권리 보유.</p>
  <p>연락처 062-XXX-XXXX</p>
</footer>

웹사이트의 주요 메뉴(네비게이션 링크)들을 그룹으로 묶을 때 사용해요. 사용자가 사이트 내 다른 페이지로 쉽게 이동할 수 있도록 도와주는 길잡이 역할이죠! 보통 <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>&copy; 2025 Aiden Hong. All rights reserved.</p>
  </footer>

</body>
</html>

어떤가요? <div> 태그만 사용해서 구조를 짜는 것보다 훨씬 더 명확하게 각 영역의 역할이 보이지 않나요? 😊

✨ 마무리하며

HTML5 시맨틱 태그를 사용하면 웹 페이지의 구조를 의미론적으로 명확하게 표현할 수 있어요. 이건 단순히 코드를 보기 좋게 만드는 것뿐만 아니라,

  • 검색 엔진(SEO)이 페이지 내용을 더 잘 이해해서 검색 결과에 잘 노출되도록 돕고,
  • 스크린 리더 사용자들이 페이지 구조를 파악하고 콘텐츠를 이용하기 쉽게 만들어 웹 접근성을 높이는 데도 아주 중요한 역할을 한답니다!

물론 <div><span>도 필요할 때는 써야 하지만, 이왕이면 <header>, <footer>, <nav>, <article>, <section>, <aside>, <main>처럼 의미가 명확한 시맨틱 태그를 적극적으로 활용하는 습관을 들이는 게 좋겠죠? 😉

0개의 댓글