July 29, 2025
๐๏ธ <div> Soup: ์๋งจํฑ HTML ๋ฌด์๋ก ์ธํ ์น ์ ๊ทผ์ฑ๊ณผ SEO ์ ํ
HTML
์นํ์ค
SEO/์ ๊ทผ์ฑ
์ํคํ
์ฒ
๋ค์ด๋ฐ
Summary
๊ณผ๋ํ <div>
์ฌ์ฉ๊ณผ ์๋งจํฑ HTML ํ๊ทธ ๋ฌด์๋ ์น ์ ๊ทผ์ฑ, SEO, ์ฝ๋ ๊ฐ๋
์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ์ ์ฌ๊ฐํ๊ฒ ์ ํดํฉ๋๋ค. ์ฝํ
์ธ ์ ์๋ฏธ์ ๋ง๋ HTML5 ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ์ ์ด๊ณ ์๋ฏธ ์๋ ์น ํ์ด์ง๋ฅผ ๊ตฌ์ถํด์ผ ํฉ๋๋ค.
Why Wrong?
์น ํ์ด์ง๋ฅผ ์ค์ง <div>
์์์ ์ผ๋ฐ์ ์ธ ์ธ๋ผ์ธ/๋ธ๋ก ์์(์: <span>
, <p>
)๋ก๋ง ๊ตฌ์ฑํ๊ณ ์๋งจํฑ HTML5 ํ๊ทธ๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค.
- ์๋ฏธ ์ ๋ฌ ๋ถ์กฑ: HTML์ ๋จ์ํ ์๊ฐ์ ์ธ ๋ ์ด์์์ ๊ตฌ์ฑํ๋ ๋๊ตฌ๋ฅผ ๋์ด, ๋ฌธ์์ ๊ตฌ์กฐ์ ์ฝํ
์ธ ์ ์๋ฏธ๋ฅผ ์ ์ํ๋ ์ธ์ด์
๋๋ค.
<div>
๋ง์ผ๋ก๋ ๊ฒ์ ์์ง, ๋ณด์กฐ ๊ธฐ์ (์คํฌ๋ฆฐ ๋ฆฌ๋) ๋ฐ ๊ฐ๋ฐ์๊ฐ ํ์ด์ง์ ์ฃผ์ ์์ญ(ํค๋, ๋ด๋น๊ฒ์ด์ , ๋ณธ๋ฌธ, ํธํฐ ๋ฑ)๊ณผ ์ฝํ ์ธ ์ ๋งฅ๋ฝ์ ํ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค. - ์น ์ ๊ทผ์ฑ ์ ํด: ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์๋ ์๋งจํฑ ํ๊ทธ(์:
<nav>
,<main>
,<h1>
,<article>
)๋ฅผ ํตํด ํ์ด์ง์ ์ฃผ์ ๋๋๋งํฌ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ํ๊ฑฐ๋ ์ฝํ ์ธ ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ดํดํฉ๋๋ค. ๋ชจ๋ ๊ฒ์<div>
๋ก๋ง ๊ตฌ์ฑํ๋ฉด ์ด๋ฌํ ํ์ ๊ธฐ๋ฅ์ด ์ ๊ณต๋์ง ์์ ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์ ๋ณด๋ฅผ ์ป๊ธฐ ๋งค์ฐ ์ด๋ ค์์ง๋๋ค. - SEO ์ฑ๋ฅ ์ ํ: ๊ฒ์ ์์ง ํฌ๋กค๋ฌ๋ ์๋งจํฑ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง์ ์ค์ ์ฝํ
์ธ ๋ฅผ ์๋ณํ๊ณ , ํค์๋์ ๋งฅ๋ฝ์ ํ์
ํ์ฌ ๋ญํน์ ๋ฐ์ํฉ๋๋ค. ์๋ฏธ ์๋
<div>
์์ฃผ์ ๊ตฌ์กฐ๋ ๊ฒ์ ์์ง์ด ํ์ด์ง์ ๊ฐ์น๋ฅผ ์ ๋๋ก ํ๊ฐํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค์ด SEO ์ ์๋ฅผ ๋ฎ์ถ ์ ์์ต๋๋ค. - ์ฝ๋ ๊ฐ๋
์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ ์ ํ: ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ฝ์ ๋
<div>
๋ง์ผ๋ก๋ ํด๋น ์น์ ์ด ์ด๋ค ์ญํ ์ ํ๋์ง ์ฆ์ ์๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด๋ ์ฝ๋ ์ดํด๋๋ฅผ ๋จ์ด๋จ๋ฆฌ๊ณ , ํ์ ์ ๋ถํ์ํ ์ปค๋ฎค๋์ผ์ด์ ๋น์ฉ์ ๋ฐ์์ํค๋ฉฐ, ์ฅ๊ธฐ์ ์ธ ์ ์ง๋ณด์๋ฅผ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. CSS ์ ํ์ ์์ฑ ๋ํ.
class ๋ช ์ ๊ณผ๋ํ๊ฒ ์์กดํ๊ฒ ๋์ด ๋ณต์กํด์ง ์ ์์ต๋๋ค. - CSS ๋ฐ JavaScript ์์
์ ๋นํจ์จ์ฑ: ๊ตฌ์กฐ์ ์๋ฏธ๊ฐ ์๋
<div>
์ ํด๋์ค๋ช ์ ๋์ง๋์ง ๋ถ์ด๊ฒ ๋์ด CSS ์ ํ์ ์์ฑ์ ๋ณต์กํ๊ฒ ๋ง๋ค๊ณ , JavaScript๋ก ํน์ ์ฝํ ์ธ ๋ฅผ ์กฐ์ํ ๋ ๋ถํ์ํ DOM ํ์์ ์ ๋ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด,document.querySelector('.header .logo')
๋์document.querySelector('header h1')
์ฒ๋ผ ๋ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
How to Fix?
์ฝํ ์ธ ์ ์๋ฏธ์ ๋ชฉ์ ์ ๋ง๋ HTML5 ์๋งจํฑ ํ๊ทธ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ฌ ์น ํ์ด์ง์ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ํด์ผ ํฉ๋๋ค.
- ์ฝํ
์ธ ์ ์๋ฏธ์ ๋ง๋ HTML5 ํ๊ทธ ์ฌ์ฉ:
<header>
,<nav>
,<main>
,<article>
,<section>
,<aside>
,<footer>
,<figure>
,<figcaption>
,<mark>
,<time>
,<details>
,<summary>
๋ฑ ๋ชฉ์ ์ ๋ง๋ ์๋งจํฑ ํ๊ทธ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ด์ง์ ์ต์๋จ ์์ญ์<header>
, ์ฃผ์ ๋ด๋น๊ฒ์ด์ ๋ฉ๋ด๋<nav>
, ํ์ด์ง์ ์ฃผ์ ์ฝํ ์ธ ๋<main>
, ๋ ๋ฆฝ์ ์ธ ๊ฒ์๊ธ์ด๋ ๋ด์ค๋<article>
, ๊ด๋ จ์ฑ ์๋ ์ฝํ ์ธ ๋ฅผ ๊ทธ๋ฃนํํ๋ ์น์ ์<section>
, ๋ณด์กฐ ์ฝํ ์ธ ๋<aside>
, ํ์ด์ง์ ์ตํ๋จ ์์ญ์<footer>
๋ก ๋งํฌ์ ํฉ๋๋ค. - ์ ๋ชฉ ํ๊ทธ(
<h1>
~<h6>
)์ ์ฌ๋ฐ๋ฅธ ๊ณ์ธต ๊ตฌ์กฐ ์ ์ง: ํ์ด์ง์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํ์ฌ ์ ๋ชฉ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ณ์ธต ์์๋ฅผ ์ง์ผ์ผ ํฉ๋๋ค. (h1
๋ค์์h3
์ด ์ค๊ฑฐ๋, ํ ํ์ด์ง์h1
์ด ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒ์ ํผํฉ๋๋ค.) - ๋ฆฌ์คํธ(
<ul>
,<ol>
)์ ํ ์ด๋ธ(<table>
)์ ์ ์ ํ ํ์ฉ: ๋ชฉ๋ก ํํ์ ์ฝํ ์ธ ๋<ul>
(์์ ์๋ ๋ชฉ๋ก) ๋๋<ol>
(์์ ์๋ ๋ชฉ๋ก)๋ก, ํ ํํ์ ๋ฐ์ดํฐ๋<table>
๋ก ๋งํฌ์ ํ์ฌ ๊ตฌ์กฐ์ ์ธ ์๋ฏธ๋ฅผ ๋ช ํํ ํฉ๋๋ค. - ARIA
role
์์ฑ ํ์ฉ (๋ณด์กฐ์ ): HTML5 ์๋งจํฑ ํ๊ทธ๋ก ํํํ๊ธฐ ์ด๋ ค์ด ๋ณต์กํ UI ์ปดํฌ๋ํธ(์: ์ปค์คํ ํญ, ์์ฝ๋์ธ)์ ๊ฒฝ์ฐ, ARIArole
์์ฑ์ ์ฌ์ฉํ์ฌ ๋ณด์กฐ ๊ธฐ์ ์ ์ถ๊ฐ์ ์ธ ์๋ฏธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ๋ฅํ ํ HTML5 ์๋งจํฑ ํ๊ทธ๋ฅผ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํ๋ฉฐ, ARIA๋ HTML์ ์๋ฏธ๋ฅผ '๋ณด๊ฐ'ํ๋ ์ญํ ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค. - ์น ํ์ค ์ค์: W3C HTML ์ ํจ์ฑ ๊ฒ์ฌ๊ธฐ ๋ฑ์ ํ์ฉํ์ฌ ์์ฑ๋ HTML์ด ์น ํ์ค์ ์ค์ํ๋์ง ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ์ฌ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฉ์งํฉ๋๋ค.
Before Code (Bad)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๋ด ์น์ฌ์ดํธ</title>
</head>
<body>
<div class="header">
<div class="logo">๋ก๊ณ </div>
<div class="navigation">
<div class="nav-item">ํ</div>
<div class="nav-item">์๊ฐ</div>
<div class="nav-item">์ฐ๋ฝ์ฒ</div>
</div>
</div>
<div class="main-content">
<div class="article-section">
<div class="article-title">๊ฒ์๊ธ ์ ๋ชฉ</div>
<div class="article-author">์์ฑ์: ํ๊ธธ๋</div>
<div class="article-body">
<p>์ด๊ฒ์ ๊ฒ์๊ธ ๋ด์ฉ์
๋๋ค. ํ
์คํธ๊ฐ ์ฌ๊ธฐ์ ๋ค์ด๊ฐ๋๋ค.</p>
<p>๋ ๋ง์ ๋ด์ฉ...</p>
</div>
<div class="comments">
<div class="comment-title">๋๊ธ</div>
<div class="comment-list">
<div class="comment-item">
<p>์ข์ ๊ธ์ด๋ค์!</p>
<div class="comment-author">๊น์ฒ ์</div>
</div>
</div>
</div>
</div>
<div class="sidebar-section">
<div class="sidebar-title">๊ด๋ จ ๋งํฌ</div>
<div class="link-list">
<div class="link-item">๋งํฌ 1</div>
<div class="link-item">๋งํฌ 2</div>
</div>
</div>
</div>
<div class="footer">
<div class="copyright">ยฉ 2023 ๋ด ์น์ฌ์ดํธ. All rights reserved.</div>
</div>
</body>
</html>
After Code (Good)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๋ด ์น์ฌ์ดํธ</title>
</head>
<body>
<header>
<h1><a href="/">๋ก๊ณ </a></h1>
<nav>
<ul>
<li><a href="/">ํ</a></li>
<li><a href="/about">์๊ฐ</a></li>
<li><a href="/contact">์ฐ๋ฝ์ฒ</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>๊ฒ์๊ธ ์ ๋ชฉ</h2>
<address>์์ฑ์: ํ๊ธธ๋</address>
<p>์ด๊ฒ์ ๊ฒ์๊ธ ๋ด์ฉ์
๋๋ค. ํ
์คํธ๊ฐ ์ฌ๊ธฐ์ ๋ค์ด๊ฐ๋๋ค.</p>
<p>๋ ๋ง์ ๋ด์ฉ...</p>
<section>
<h3>๋๊ธ</h3>
<ul>
<li>
<p>์ข์ ๊ธ์ด๋ค์!</p>
<address>๊น์ฒ ์</address>
</li>
</ul>
</section>
</article>
<aside>
<h3>๊ด๋ จ ๋งํฌ</h3>
<ul>
<li><a href="#">๋งํฌ 1</a></li>
<li><a href="#">๋งํฌ 2</a></li>
</ul>
</aside>
</main>
<footer>
<small>ยฉ 2023 ๋ด ์น์ฌ์ดํธ. All rights reserved.</small>
</footer>
</body>
</html>
You Might Also Like
MDN์ ์๋งจํฑ HTML ๋ฌธ์๋ก, ๊ฐ HTML ์์์ ์๋ฏธ์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
https://developer.mozilla.org/ko/docs/Glossary/Semantic_HTML
MDN์ ARIA ์ญํ ๋ฌธ์๋ก, HTML5 ์๋งจํฑ ํ๊ทธ๊ฐ ์ ๊ณตํ์ง ๋ชปํ๋ ์ถ๊ฐ์ ์ธ ์๋ฏธ๋ ์ํธ์์ฉ์ ๋ณด์กฐ ๊ธฐ์ ์ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
https://developer.mozilla.org/ko/docs/Web/Accessibility/ARIA/Roles