λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Frontend Dev/HTML

HTML5 μ‹œλ§¨ν‹± μš”μ†Œ (Semantic Element)

λ°˜μ‘ν˜•

update 23.06.27

πŸ‘Ύ μ‹œλ§¨ν‹± μš”μ†Œ(Semantic Element)λž€ λ¬΄μ—‡μΌκΉŒ?

μ‹œλ§¨ν‹± μš”μ†Œ(의미 μš”μ†Œ, semantic element)λž€ κ·Έ 자체둜 의미λ₯Ό 가지고 μžˆλŠ” μš”μ†Œλ₯Ό 가리킨닀.

  → semantic : μ˜λ―Έκ°€ μžˆλŠ”, 의미둠적인

즉, μš”μ†Œκ°€ 자기 슀슀둜 λΈŒλΌμš°μ €μ™€ 개발자 λͺ¨λ‘μ—κ²Œ μžμ‹ μ΄ μ‚¬μš©λœ 의미λ₯Ό λͺ…ν™•νžˆ 전달해 μ£ΌλŠ” μš”μ†Œλ₯Ό μ˜λ―Έν•œλ‹€.

 

HTML5μ—μ„œλŠ” μ‹œλ©˜ν‹± 웹이 μ€‘μ‹œλ˜λ©΄μ„œ μ—¬λŸ¬ μ‹œλ§¨ν‹± μš”μ†Œκ°€ μƒˆλ‘­κ²Œ λ§Œλ“€μ–΄μ‘Œκ³ , 의미λ₯Ό 가진 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λŠ” 방식을 μΆ”κ΅¬ν•˜κΈ° μ‹œμž‘ν–ˆλ‹€.

 

πŸ‘Ύ μ‹œλ©˜ν‹± μš”μ†Œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 이유

 1. 검색 νš¨μœ¨μ„±

 κ²€μƒ‰ 엔진은 HTML μ½”λ“œλ₯Ό 보고 λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό νŒŒμ•…ν•˜κΈ° λ•Œλ¬Έμ— μ–΄λ–€ μ‹œλ§¨ν‹± μš”μ†Œλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ μ–΄λ–€ μš”μ†Œμ— 더 μ€‘μš”ν•œ λ‚΄μš©μ΄ λ“€μ–΄μžˆμ„μ§€ μš°μ„ μˆœμœ„λ₯Ό μ •ν•  수 있고, μš°μ„ μˆœμœ„κ°€ λ†’λ‹€κ³  νŒŒμ•…λœ νŽ˜μ΄μ§€λ₯Ό 검색 κ²°κ³Ό 상단에 ν‘œμ‹œν•œλ‹€.

 → μ‹œλ§¨ν‹± μš”μ†Œμ— λ‹΄κΈ΄ μ˜λ―Έμ— 따라 검색 결과의 μƒμœ„ λ…ΈμΆœμ΄ 결정될 수 μžˆλ‹€.

 

 2. 개발자 κ°„ μ†Œν†΅

 μ—¬λŸ¬ κ°œλ°œμžκ°€ ν•¨κ»˜ μž‘μ—…ν•  λ•Œ <div>μš”μ†Œλ₯Ό νƒμƒ‰ν•˜λŠ” 것보닀 의미 μžˆλŠ” μ½”λ“œ 블둝을 μ°ΎλŠ” 것이 훨씬 더 νŽΈλ¦¬ν•˜λ©°, μš”μ†Œ μ•ˆμ— μ±„μ›Œμ§ˆ 데이터 μœ ν˜•λ„ μ˜ˆμΈ‘ν•˜κΈ° 쉽닀.

 

 3. μ›Ή μ ‘κ·Όμ„±

 μ›Ή νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  λ•Œ μŒμ„±μœΌλ‘œ 화면을 λ“£λŠ” μŠ€ν¬λ¦°λ¦¬λ”λ₯Ό μ‚¬μš©ν•˜λŠ” μ‹œκ° μž₯μ• μΈμ˜ 경우 HTML이 μ‹œλ©˜ν‹± μš”μ†Œλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€λ©΄ ν™”λ©΄μ˜ ꡬ쑰에 λŒ€ν•œ μ •λ³΄κΉŒμ§€ μΆ”κ°€λ‘œ 전달해 쀄 수 μžˆμ–΄ μ½˜ν…μΈ λ₯Ό μ’€ 더 μ •ν™•ν•˜κ²Œ 전달할 수 있게 λœλ‹€.

 

πŸ‘Ύ μ‹œλ§¨ν‹± μš”μ†Œμ˜ μ’…λ₯˜

headernavsectionarticlemainasidefigure, figcaptionfooter

이번 κΈ€μ—μ„œ μ•Œμ•„λ³Ό μ‹œλ§¨ν‹± μš”μ†ŒλŠ” μœ„μ™€ κ°™μ§€λ§Œ κ·Έ 외에 더 λ§Žμ€ νƒœκ·Έλ“€μ΄ μ‘΄μž¬ν•˜λ©°, mdnμ—μ„œ 확인할 수 μžˆλ‹€.

 

semantic ꡬ쑰와 MDN μ‚¬μ΄νŠΈ semantic μš”μ†Œ 뢄석

 

<header>

 HTML λ¬Έμ„œλ‚˜ μ„Ήμ…˜(section) 뢀뢄에 λŒ€ν•œ headerλ₯Ό μ •μ˜ν•œλ‹€. headerλž€ λ„μž…λΆ€μ— ν•΄λ‹Ήν•˜λŠ” μ½˜ν…μΈ (content)λ₯Ό 가지고 μžˆλŠ” 뢀뢄을 μ˜λ―Έν•˜λ©°, ν•œ λ¬Έμ„œ 내에 μ—¬λŸ¬ 개의 <header>κ°€ μ‘΄μž¬ν•  수 μžˆλ‹€.

 μΌλ°˜μ μœΌλ‘œ νŽ˜μ΄μ§€λ‚˜ ν•΄λ‹Ή 파트의 κ°€μž₯ μœ—λΆ€λΆ„μ— μœ„μΉ˜ν•œλ‹€.

<header>
  <h1>전체 λ¬Έμ„œμ— λŒ€ν•œ 헀더(header)</h1>
</header>

<section>
  <header>
    <h2>μ„Ήμ…˜ 뢀뢄에 λŒ€ν•œ 헀더(header)</h2>
    <p>헀더 뢀뢄에 λ“€μ–΄κ°„ 단락</p>
  </header>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing eli...</p>
</section>

 

<h1> ~ <h6> heading (제λͺ©)

 μ œλͺ©μ„ ν‘œν˜„ν•  수 μžˆλŠ” μš”μ†Œλ‘œ κ°€μž₯ 큰 <h1>νƒœκ·ΈλΆ€ν„° κ°€μž₯ μž‘μ€ <h6>νƒœκ·ΈκΉŒμ§€ λ‹€μ–‘ν•œ 크기둜 제λͺ©μ„ ν‘œν˜„ν•  수 μžˆλ‹€.

 μ—¬λŸ¬ 검색엔진은 각 μ›Ή μ‚¬μ΄νŠΈμ˜ λ‚΄μš©μ„ <h>νƒœκ·Έλ₯Ό μ΄μš©ν•˜μ—¬ ν‚€μ›Œλ“œλ₯Ό μˆ˜μ§‘ν•˜κ³ , κ·Έ λ‚΄μš©μ„ νŒŒμ•…ν•˜κΈ° λ•Œλ¬Έμ— HTML λ¬Έμ„œμ— ν¬ν•¨λ˜λŠ” 제λͺ©μ€ <h>νƒœκ·Έλ‘œ μž‘μ„±ν•΄μ•Όλ§Œ 검색엔진에 μ˜ν•΄ 검색될 ν™•λ₯ μ„ 높일 수 μžˆλ‹€.

<h1>제λͺ©</h1>
<h2>제λͺ©</h2>
<h3>제λͺ©</h3>
<h4>제λͺ©</h4>
<h5>제λͺ©</h5>
<h6>제λͺ©</h6>

<nav>

 HTML λ¬Έμ„œ 사이λ₯Ό 탐색할 수 μžˆλŠ” 링크의 집합을 μ •μ˜ν•œλ‹€. (상단바 λ“± μ‚¬μ΄νŠΈλ₯Ό μ•ˆλ‚΄ν•˜λŠ” μš”μ†Œμ— μ‚¬μš©) ν•˜μ§€λ§Œ λ¬Έμ„œ λ‚΄μ˜ λͺ¨λ“  링크가 <nav> μš”μ†Œμ— ν¬ν•¨λ˜λŠ” 것은 μ•„λ‹ˆλ‹€.

 λ³΄ν†΅μ€ <ul>을 λ„£μ–΄ λͺ©λ‘ ν˜•νƒœλ‘œ μ‚¬μš©ν•œλ‹€.

<nav>
  <ul>
    <li><a href="#">COFFEE</a></li>
    <li><a href="#">MENU</a></li>
    <li><a href="#">STORE</a></li>
    <li><a href="#">RESPONSIBILITY</a></li>
    <li><a href="#">STARBUCKS REWARDS</a></li>
    <li><a href="#">COPERATE SALES</a></li>
    <li><a href="#">WHAT'S NEW</a></li>
  </ul>
</nav>

 

<section>

 HTML λ¬Έμ„œμ˜ 독립적인 κ΅¬νšμ„ λ‚˜νƒ€λ‚΄λ©°, HTML λ¬Έμ„œμ˜ 전체적인 λ‚΄μš©κ³Ό 관련이 μžˆλŠ” μ½˜ν…μΈ λ“€μ˜ 집합을 μ˜λ―Έν•œλ‹€. <section> νƒœκ·ΈλŠ” 더 μ ν•©ν•œ 의미λ₯Ό 가진 μš”μ†Œκ°€ 없을 λ•Œ μ‚¬μš©ν•œλ‹€.

 section μ˜μ—­μ—λŠ” 제λͺ©(hμš”μ†Œ)을 ν¬ν•¨ν•˜κΈ°λ₯Ό ꢌμž₯ν•œλ‹€.

<section>
  <h2>μ„Ήμ…˜ μ˜μ—­μ—λŠ” 제λͺ©μ„ ν¬ν•¨ν•˜κΈΈ ꢌμž₯ν•œλ‹€.</h2>
  <p>Lorem ipsum...</p>
</section>

 

<article>

 HTML λ¬Έμ„œμ—μ„œ λ…λ¦½μ μœΌλ‘œ ꡬ뢄해 λ°°ν¬ν•˜κ±°λ‚˜ μž¬μ‚¬μš©ν•  수 μžˆλŠ” ν•˜λ‚˜μ˜ 기사(article) 뢀뢄을 μ •μ˜ν•œλ‹€.

 <article> μš”μ†Œμ˜ λ‚΄μš©μ€ κ·Έ μžμ²΄λ§ŒμœΌλ‘œλ„ 이해가 λ˜μ–΄μ•Ό ν•˜λ©°, μ›Ή μ‚¬μ΄νŠΈμ˜ λ‚˜λ¨Έμ§€ λΆ€λΆ„κ³ΌλŠ” λ³„λ„λ‘œ 읽을 수 μžˆμ–΄μ•Ό ν•œλ‹€.

 κ°κ°μ˜ article을 κ΅¬λΆ„ν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨μ΄ ν•„μš”ν•˜λ©°, 보톡 제λͺ©(hμš”μ†Œ)을 ν¬ν•¨ν•˜λŠ” 방법을 μ‚¬μš©ν•œλ‹€. 

<article class="user_review">
  <p>Way too scary for me.</p>
  <footer>
    <p>Posted on <time datetime="2015-05-16 19:00">May 16</time> by Lisa.</p>
  </footer>
</article>
<article class="user_review">
  <p>I agree, dinos are my favorite.</p>
  <footer>
    <p>Posted on <time datetime="2015-05-17 19:00">May 17</time> by Tom.</p>
  </footer>
</article>

 

 βœοΈ <section>κ³Ό <article>은 μ’…μ’… ν—·κ°ˆλ¦¬κ³€ ν•˜λŠ”λ°, λŒ€μ²΄λ‘œ <section> μš”μ†ŒλŠ” HTML λ¬Έμ„œμ˜ 전체적인 λ‚΄μš©μ— ν¬ν•¨λ˜κ³ , <article> μš”μ†ŒλŠ” λ¬Έμ„œμ˜ 전체적인 λ‚΄μš©κ³ΌλŠ” λ³„λ„λ‘œ 독립적인 λ‚΄μš©μ΄ λ“€μ–΄κ°ˆ λ•Œ μ‚¬μš©ν•œλ‹€.

 

<main>

 HTML λ¬Έμ„œ <body>의 μ£Όμš” μ½˜ν…μΈ λ₯Ό μ •μ˜ν•œλ‹€. <main> μš”μ†Œμ˜ μ½˜ν…μΈ λŠ” λ¬Έμ„œμ˜ μœ μΌν•œ λ‚΄μš©μ΄μ–΄μ•Ό ν•˜λ©°, ν•˜λ‚˜μ˜ HTML λ¬Έμ„œμ—λŠ” ν•˜λ‚˜μ˜ <main> μš”μ†Œκ°€ μ‘΄μž¬ν•œλ‹€.

<main>
    μ£Όμš” μ½˜ν…μΈ  μ •μ˜
</main>

 

<aside>

 HTML λ¬Έμ„œμ—μ„œ νŽ˜μ΄μ§€ λΆ€λΆ„ μ΄μ™Έμ˜ μ½˜ν…μΈ λ₯Ό μ •μ˜ν•œλ‹€. 본문의 μ£Όμš” 뢀뢄을 ν‘œμ‹œν•˜κ³  남은 뢀뢄을 μ„€λͺ…ν•˜λŠ” μš”μ†Œλ‘œ νŠΉλ³„ν•œ 일이 μ•„λ‹ˆλ©΄ μ‚¬μ΄λ“œλ°”λ‚˜ κ΄‘κ³ μ°½ λ“± μ€‘μš”ν•˜μ§€ μ•Šμ€ 뢀뢄에 μ‚¬μš©λœλ‹€.

<!-- λ³Έλ¬Έκ³ΌλŠ” κ°„μ ‘μ μœΌλ‘œ μ—°κ΄€λœ λΆ€λΆ„ -->
<h1>The aside element</h1>
<p>My family and I visited The Epcot center this summer. The weather was nice, and Epcot was amazing! I had a great summer together with my family!</p>
<aside>
  <h4>Epcot Center</h4>
  <p>Epcot is a theme park at Walt Disney World Resort featuring exciting attractions, international pavilions, award-winning fireworks and seasonal special events.</p>
</aside>
<!-- κ΄‘κ³ λ₯Ό ν‘œμ‹œν•˜λŠ” 경우 -->
<article>
  <h2>제λͺ©</h2>
  <p>λ³Έλ¬Έ λ‚΄μš©</p>
  <aside>
    <h3>κ΄‘κ³ </h3>
    <a href="#"><img src="κ΄‘κ³  이미지 μ£Όμ†Œ" alt="κ΄‘κ³ "></a>
  </aside>
</article>

 

<figure> <figcaption>

 <figure> μš”μ†ŒλŠ” HTML λ¬Έμ„œμ—μ„œ κ·Έλž˜ν”½κ³Ό λΉ„λ””μ˜€ λ“±μ˜ 독립적인 μ½˜ν…μΈ λ₯Ό μ •μ˜ν•  λ•Œ μ‚¬μš©ν•˜λ©°, <figcaption> μš”μ†ŒλŠ” <figure> μš”μ†Œλ₯Ό μœ„ν•œ μΊ‘μ…˜μ„ μ •μ˜ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

<figure>
  <img src="https://images.unsplash.com/photo-1627555704615-1bfc0c702d0e" 
       alt="restaurant" width="350" height="263">
  <figcaption>[ Latin American Restaurant ]</figcaption>
</figure>

 

<footer>

 HTML λ¬Έμ„œλ‚˜ μ„Ήμ…˜ 뢀뢄에 λŒ€ν•œ footerλ₯Ό μ •μ˜ν•œλ‹€.

 HTML λ¬Έμ„œμ˜ <footer>λŠ” 일반적으둜 νŽ˜μ΄μ§€λ‚˜ ν•΄λ‹Ή 파트의 κ°€μž₯ μ•„λž«λΆ€λΆ„μ— μœ„μΉ˜ν•˜λ©°, μ‚¬μ΄νŠΈμ˜ μž‘μ„±μžλ‚˜ 그에 λ”°λ₯Έ μ €μž‘κΆŒ 정보, μ—°λ½μ²˜ 등을 λͺ…μ‹œν•œλ‹€. λ˜ν•œ ν•œ λ¬Έμ„œ 내에 μ—¬λŸ¬ 개의 <footer> μš”μ†Œκ°€ μ‘΄μž¬ν•  수 μžˆλ‹€.

<footer>
  <p>ν‘Έν„°(footer) λΆ€λΆ„</p>
  <p>Copyright 2021. 지은이 all rights reserved.</p>
  <p>μ—°λ½μ²˜ : 02-1234-5678</p>
</footer>

 


✏️ κ³΅λΆ€ν•˜λ©° μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. 잘λͺ»λœ μ •λ³΄λ‚˜ 더 κ³΅μœ ν•  λ‚΄μš©μ΄ μžˆλ‹€λ©΄ λŒ“κΈ€λ‘œ μ•Œλ €μ£Όμ„Έμš”! 

μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€ 😊

λ°˜μ‘ν˜•