
의미 중심 HTML, 즉 시맨틱 HTML에 대해 쉽고 자세하게 알아보겠습니다. 마지막에는 작동 가능한 전체 실습 코드를 제공해 드릴게요.
시맨틱 HTML은 HTML 요소가 단순히 웹 페이지에 어떻게 보이는지를 넘어서, 그 요소가 어떤 의미를 가지고 있는지를 강조하는 것입니다. 즉, 각 HTML 요소가 그 자체로 의미나 목적을 전달하도록 설계된 것입니다.
<nav>: 내비게이션 메뉴를 나타냅니다.<header>: 페이지나 섹션의 머리글을 나타냅니다.<footer>: 페이지나 섹션의 바닥글을 나타냅니다.<article>: 독립적으로 구분되는 콘텐츠를 나타냅니다.<section>: 콘텐츠의 일반적인 섹션을 나타냅니다.코드를 읽는 사람이 요소의 의미를 바로 이해할 수 있어 코드의 가독성이 높아집니다.
검색 엔진은 시맨틱 HTML을 통해 페이지의 구조와 콘텐츠를 더 잘 이해할 수 있어, 검색 결과에서의 노출이 향상됩니다.
스크린 리더 등 보조 기술을 사용하는 사용자들이 페이지의 구조를 더 명확하게 파악할 수 있어, 웹 접근성이 개선됩니다.
<header>, <footer>, <nav>, <main>, <section>, <article>, <aside><div>, <span><div>
<div>홈</div>
<div>소개</div>
<div>서비스</div>
<div>연락처</div>
</div>
위 코드는 <div> 요소만 사용하여 내비게이션 메뉴를 구성했습니다. 하지만 이 코드만 봐서는 이 <div>들이 내비게이션을 위한 것인지 알 수 없습니다.
<nav>
<ul>
<li>홈</li>
<li>소개</li>
<li>서비스</li>
<li>연락처</li>
</ul>
</nav>
이 코드는 <nav> 요소를 사용하여 내비게이션임을 명확히 나타냈습니다. 또한 <ul>과 <li>를 사용하여 목록 구조를 표현했습니다.
<header>
<h1>내 웹사이트</h1>
</header>
<!-- 본문 내용 -->
<footer>
<p>© 2023 내 웹사이트</p>
</footer>
<main>
<article>
<h2>기사 제목</h2>
<p>기사 내용...</p>
</article>
</main>
<aside>
<h3>관련 기사</h3>
<ul>
<li>기사 1</li>
<li>기사 2</li>
</ul>
</aside>
시맨틱 HTML은 콘텐츠의 의미를 강조하고, 디자인과 레이아웃은 CSS로 처리합니다. 따라서 HTML은 구조와 의미를, CSS는 스타일을 담당하게 됩니다.
코드의 구조가 명확해져서 유지보수가 쉬워집니다. 새로운 개발자가 프로젝트에 참여하더라도 코드의 의미를 빠르게 파악할 수 있습니다.
아래는 시맨틱 HTML을 사용하여 간단한 웹 페이지를 구성한 예제입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>시맨틱 HTML 예제</title>
<style>
/* 스타일은 여기에서 작성합니다 */
body {
font-family: Arial, sans-serif;
margin: 0;
}
header, nav, main, aside, footer {
padding: 20px;
}
nav ul {
list-style-type: none;
padding: 0;
}
nav li {
display: inline;
margin-right: 15px;
}
main {
float: left;
width: 70%;
}
aside {
float: right;
width: 25%;
}
footer {
clear: both;
text-align: center;
background-color: #f1f1f1;
}
</style>
</head>
<body>
<header>
<h1>내 웹사이트</h1>
</header>
<nav>
<ul>
<li><a href="#">홈</a></li>
<li><a href="#">소개</a></li>
<li><a href="#">서비스</a></li>
<li><a href="#">연락처</a></li>
</ul>
</nav>
<main>
<article>
<h2>첫 번째 기사</h2>
<p>이것은 첫 번째 기사 내용입니다.</p>
</article>
<article>
<h2>두 번째 기사</h2>
<p>이것은 두 번째 기사 내용입니다.</p>
</article>
</main>
<aside>
<h3>사이드바</h3>
<p>여기는 사이드바 내용이 들어갑니다.</p>
</aside>
<footer>
<p>© 2023 내 웹사이트</p>
</footer>
</body>
</html>
<!DOCTYPE html>: 문서가 HTML5임을 선언합니다.<html lang="ko">: 문서의 언어를 한국어로 설정합니다.<head>: 문서에 대한 메타데이터를 포함합니다.<meta charset="UTF-8">: 문자의 인코딩을 UTF-8로 설정합니다.<title>: 브라우저 탭에 표시될 제목을 설정합니다.<style>: 간단한 CSS 스타일을 정의합니다.<body>: 실제 화면에 보이는 콘텐츠를 포함합니다.<header>: 페이지의 머리글로, 사이트의 제목을 포함합니다.<nav>: 내비게이션 메뉴를 포함합니다.<ul>과 <li>를 사용하여 메뉴 항목을 리스트로 구성합니다.<main>: 주요 콘텐츠 영역입니다.<article>: 독립적인 기사나 글을 나타냅니다.<aside>: 사이드바로, 부가적인 정보를 포함합니다.<footer>: 페이지의 바닥글로, 저작권 정보 등을 포함합니다.이렇게 시맨틱 HTML을 사용하면 코드의 구조와 의미가 명확해져서 여러 가지 이점을 누릴 수 있습니다. 위의 코드를 직접 실행해 보시고, 각 요소가 어떻게 동작하는지 확인해 보세요!