πŸ‘©πŸ»‍πŸ’» Dev/Front-End

HTML 심화 | λ©΄μ ‘ 질문 λͺ¨μŒ

yesolz 2024. 8. 21. 00:05
728x90

DOCTYPE

<!-- HTML5 -->
<!DOCTYPE html>

Document Type의 μ•½μž.

HTML이 μ–΄λ–€ λ²„μ „μœΌλ‘œ μž‘μ„±λ˜μ—ˆλŠ”μ§€ 미리 μ„ μ–Έν•˜μ—¬ μ›ΉλΈŒλΌμš°μ €κ°€ λ‚΄μš©μ„ μ˜¬λ°”λ‘œ ν‘œμ‹œν•  수 μžˆλ„λ‘ ν•΄μ€€λ‹€.

이λ₯Ό 선언해주지 μ•ŠμœΌλ©΄, ν˜Έν™˜ λͺ¨λ“œ(quirks mode)둜 λ™μž‘ν•˜λ©°, 이 경우 크둜슀 λΈŒλΌμš°μ§• μ΄μŠˆκ°€ μ‹¬ν•΄μ§€κ²Œ λœλ‹€.

 

ν‘œμ€€ λͺ¨λ“œμ™€ ν˜Έν™˜ λͺ¨λ“œ

W3Cκ°€ μ›Ή ν‘œμ€€μ„ λ§Œλ“€λ©΄μ„œ, λ Œλ”λ§μ„ ν•  λ•Œ ν‘œμ€€ λͺ¨λ“œ(Standards mode)와 ν˜Έν™˜ λͺ¨λ“œ(Quirks mode)둜 λ Œλ”λ§ν•  수 μžˆλŠ” μ˜΅μ…˜μ΄ 생겼닀.
ν˜Έν™˜ λͺ¨λ“œλ‘œ λ Œλ”λ§μ„ ν•˜κ²Œ 되면 였래된 μ›ΉνŽ˜μ΄μ§€λ“€μ„ μ΅œμ‹  λ²„μ „μ˜ λΈŒλΌμš°μ €μ—μ„œλ„ 깨지지 μ•ŠκΈ° λ•Œλ¬Έμ— 각 λΈŒλΌμš°μ €λ§ˆλ‹€ λ‹€λ₯΄κ²Œ 보일 수 μžˆλ‹€.
λ”°λΌμ„œ νŠΉλ³„ν•œ κ²½μš°κ°€ μ•„λ‹ˆλΌλ©΄ DOCTYPE을 λͺ…μ‹œν•˜μ—¬ λΈŒλΌμš°μ €κ°€ ν‘œμ€€ λͺ¨λ“œλ‘œ λ Œλ”λ§ν•˜κ²Œ ν•˜λŠ” 게 μ’‹λ‹€.

https://developer.mozilla.org/ko/docs/Web/HTML/Quirks_Mode_and_Standards_Mode

 

 

μ›Ή ν‘œμ€€

μ›Ή μƒμ—μ„œ ν‘œμ€€μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” 기술.

μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ–΄λ– ν•œ μš΄μ˜μ²΄μ œλ‚˜ μ–΄λ– ν•œ λΈŒλΌμš°μ €μ—μ„œ 보더라도 λ™μΌν•˜κ²Œ 보여지도둝 W3C의 ν‘œμ€€μ— λ§žμΆ”λŠ” 것이닀.

λ‹€μ–‘ν•œ λΈŒλΌμš°μ €μ—μ„œ λŒ€μ‘ν•  수 μžˆμ–΄ 접근성이 ν–₯μƒλœλ‹€.

μ΅œμ‹  μ›Ή ν‘œμ€€ 버전은 HTML5와 CSS3이닀. 

 

HTML5에 μΆ”κ°€λœ λ‚΄μš©

  • <canvas> νƒœκ·Έ: HTML5μ—μ„œ μƒˆλ‘­κ²Œ λ„μž…λœ κΈ°λŠ₯으둜, 2D κ·Έλž˜ν”½μ„ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό 톡해 그릴 수 있음. λΉ„νŠΈλ§΅ λ°©μ‹μœΌλ‘œ, 해상도 의쑴적(Resolution-dependent)이닀. 
  • λͺ¨λ“  λ””λ°”μ΄μŠ€ ν˜Έν™˜μ„±: HTML5λŠ” λ‹€μ–‘ν•œ λ””λ°”μ΄μŠ€μ—μ„œμ˜ μ›ΉνŽ˜μ΄μ§€ ν˜Έν™˜μ„±μ„ 크게 ν–₯μƒμ‹œν‚΄.
  • μ‹œλ§¨ν‹± μ›Ή 기술: HTML5μ—μ„œ 처음으둜 μ‹œλ§¨ν‹± νƒœκ·Έκ°€ λ„μž…λ˜μ–΄, λ¬Έμ„œ ꡬ쑰λ₯Ό λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•  수 있게 됨.

 

meta νƒœκ·Έμ™€ meta νƒœκ·Έμ˜ μš”μ†Œ

metaνƒœκ·Έ : HTML λ¬Έμ„œκ°€ μ–΄λ–€ λ‚΄μš©μ„ λ‹΄κ³  있고, ν‚€μ›Œλ“œλŠ” 무엇이며, λˆ„κ°€ λ§Œλ“€μ—ˆλŠ”μ§€μ— λŒ€ν•œ 정보 (μ›Ή νŽ˜μ΄μ§€μ˜ 메타데이터)λ₯Ό λ‹΄λŠ” νƒœκ·Έ

<head>
  <meta charset="UTF-8" />
  <meta name="keywords" content="Travel, Adventure, Destinations, Vacation, Guide" />
  <meta name="description" content="Explore top travel destinations and tips for your next adventure." />
  <meta name="author" content="GlobalExplorer" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Top Travel Destinations</title>
</head>
  • charset: λ¬Έμ„œμ—μ„œ ν—ˆμš©ν•˜λŠ” 문자 집합
    • utf-8: 전세계적인 character 집합
  • name: 메타 μš”μ†Œκ°€ μ–΄λ–€ μ •λ³΄μ˜ ν˜•νƒœλ₯Ό 가지고 μžˆλŠ”μ§€
  • content: μ‹€μ œ 메타 λ°μ΄ν„°μ˜ 컨텐츠keywords와 description 같은 νƒœκ·ΈλŠ” 검색엔진이 νŽ˜μ΄μ§€λ₯Ό νŠΉμ • 검색어와 μ—°κ΄€ 짓고, 검색 결과에 ν‘œμ‹œλ  μš”μ•½ λ‚΄μš©μ„ κ²°μ •ν•˜λŠ” 데 μ‚¬μš©λœλ‹€. μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λœ meta νƒœκ·ΈλŠ” 검색엔진 μ΅œμ ν™”(SEO)에 긍정적인 영ν–₯을 쀄 수 μžˆλ‹€.

keywords와 description 같은 νƒœκ·ΈλŠ” 검색엔진이 νŽ˜μ΄μ§€λ₯Ό νŠΉμ • 검색어와 μ—°κ΄€ 짓고, 검색 결과에 ν‘œμ‹œλ  μš”μ•½ λ‚΄μš©μ„ κ²°μ •ν•˜λŠ” 데 μ‚¬μš©λœλ‹€. μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λœ meta νƒœκ·ΈλŠ” 검색엔진 μ΅œμ ν™”(SEO)에 긍정적인 영ν–₯을 쀄 수 μžˆλ‹€.

 

μ‹œλ§¨ν‹± λ§ˆν¬μ—…

μ‹œλ§¨ν‹±(Semantic): "의미둠적인"
λ§ˆν¬μ—…(Markup): HTML νƒœκ·Έλ‘œ λ¬Έμ„œλ₯Ό μž‘μ„±ν•˜λŠ” 것

-> μ‹œλ§¨ν‹± λ§ˆν¬μ—…μ΄λž€, 의미λ₯Ό 잘 μ „λ‹¬ν•˜λ„λ‘ λ¬Έμ„œλ₯Ό μž‘μ„±ν•˜λŠ” 것.

μ‹œλ©˜ν‹± λ§ˆν¬μ—…μ˜ μž₯점

  • 검색엔진 μ΅œμ ν™”(SEO): 검색엔진이 νŽ˜μ΄μ§€ ꡬ쑰λ₯Ό 더 잘 μ΄ν•΄ν•˜κ³ , μ½˜ν…μΈ λ₯Ό μ •ν™•ν•˜κ²Œ 색인할 수 μžˆλ‹€.
  • μ›Ή μ ‘κ·Όμ„±: 슀크린 리더와 같은 보쑰 기술이 νŽ˜μ΄μ§€ ꡬ쑰λ₯Ό μ΄ν•΄ν•˜λŠ” 데 도움이 λœλ‹€. 
  • 가독성: μš”μ†Œ μžμ²΄κ°€ 의미λ₯Ό 가지기 λ•Œλ¬Έμ—, μ½”λ“œλ§Œ 봐도 의미λ₯Ό λΉ λ₯΄κ²Œ νŒŒμ•…ν•  수 μžˆλ‹€. 

 

μž‘μ„± 방법

1. 각 νƒœκ·Έλ₯Ό μš©λ„μ— 맞게 μ‚¬μš©ν•˜μ—¬μ•Ό ν•œλ‹€.

 

https://www.w3schools.com/html/html5_semantic_elements.asp

  • 헀더/ν‘Έν„° <header><footer>
  • λ‚΄λΉ„κ²Œμ΄μ…˜ <nav>
  • 독립적인 μ½˜ν…μΈ  <article>
  • μ‚¬μ΄λ“œ 곡간 <aside>
  • μ—¬λŸ¬ 쀑심 λ‚΄μš© κ°μ‹ΈλŠ” 곡간 <section>
  • μ΅œμƒμœ„ 제λͺ©μœΌλ‘œ <h1>
  • μˆœμ„œ μ—†λŠ” λͺ©λ‘ <ul> <li>

 

2. CSS μŠ€νƒ€μΌμ„ λͺ…μ‹œν•˜λŠ” νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

νƒœκ·Έκ°€ κ°€μ§€λŠ” 의미 μžμ²΄κ°€ μŠ€νƒ€μΌμ΄λΌλ©΄, λ§ˆν¬μ—… μžμ²΄κ°€ μŠ€νƒ€μΌμ„ κ°–λŠ” 것이기 λ•Œλ¬Έμ— μ‹œλ§¨ν‹± λ§ˆν¬μ—…μ— μ ν•©ν•˜μ§€ μ•Šλ‹€!

예λ₯Ό λ“€μ–΄, λ™μΌν•œ 효과λ₯Ό λΆ€μ—¬ν•˜λŠ” <strong> κ³Ό <b> νƒœκ·Έκ°€ μžˆλ‹€. λ‘˜μ€ λ™μΌν•˜κ²Œ κΈ€μžμƒ‰μ„ μ§„ν•˜κ²Œ ν•˜μ§€λ§Œ <b> νƒœκ·Έμ˜ κ²½μš°λŠ” κ·Έ μžμ²΄κ°€ "bold" 의 약어이기 λ•Œλ¬Έμ— νƒœκ·Έ μžμ²΄κ°€ μŠ€νƒ€μΌμ„ 가진닀고 ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ <strong> 의 κ²½μš°λŠ” "κ·Έ μ•ˆμ˜ λ‚΄μš©μ΄ λ‹€λ₯Έ λ‚΄μš©λ³΄λ‹€ 더 κ°•μ‘°λ˜μ–΄μ•Ό ν•œλ‹€" λΌλŠ” 의미λ₯Ό 가지기 λ•Œλ¬Έμ— μ‹œλ§¨ν‹± λ§ˆν¬μ—…μ— 더 μ ν•©ν•˜λ‹€.

https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/html/semantic.md

 

 

SEO (Search Engine Optimization)

검색 엔진 μ΅œμ ν™”(SEO: Search Engine Optimization)λŠ” 검색 엔진이 μ›ΉνŽ˜μ΄μ§€μ˜ 자료λ₯Ό μˆ˜μ§‘ν•˜κ³  μˆœμœ„λ₯Ό 맀길 λ•Œ, μ›ΉνŽ˜μ΄μ§€κ°€ 검색 κ²°κ³Όμ—μ„œ μƒμœ„μ— λ…ΈμΆœλ  수 μžˆλ„λ‘ κ΅¬μ„±ν•˜λŠ” ν–‰μœ„λ₯Ό λ§ν•œλ‹€.

SEOλ₯Ό μœ„ν•΄μ„œλŠ” μ μ ˆν•œ 검색어(ν‚€μ›Œλ“œ)λ₯Ό νŽ˜μ΄μ§€μ— μ „λž΅μ μœΌλ‘œ λ°°μΉ˜ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

검색 엔진은 μ›ΉνŽ˜μ΄μ§€λ₯Ό 뢄석할 λ•Œ HTML νƒœκ·Έμ™€ κ·Έ ꡬ쑰λ₯Ό ν‰κ°€ν•˜λ©°, 이 κ³Όμ •μ—μ„œ μ‹œλ§¨ν‹±ν•œ λ§ˆν¬μ—…μ„ μ‚¬μš©ν•œ λ¬Έμ„œλŠ” 검색 엔진이 νŽ˜μ΄μ§€μ˜ λ‚΄μš©μ„ 더 잘 μ΄ν•΄ν•˜κ³ , 더 의미 μžˆλŠ” κ²°κ³Όλ₯Ό 보여쀄 수 있게 ν•œλ‹€.

 

μ›Ή μ ‘κ·Όμ„±

μ›Ή μ ‘κ·Όμ„±: λͺ¨λ“  μ‚¬λžŒ (λΉ„μž₯애인, μž₯애인, 노인 λ“±)이 차별 없이 μ›Ή μ‚¬μ΄νŠΈλ₯Ό 자유둭게 μ΄μš©ν•  수 있게 ν•˜λŠ” ꢌ리

  • μ›Ή 접근성에 λ§žλŠ” λ§ˆν¬μ—… μ˜ˆμ‹œ
    • 이미지에 alt 속성 μΆ”κ°€ν•˜μ—¬ ν…μŠ€νŠΈ λŒ€μ²΄ μ„€λͺ… 제곡
    • λ™μ˜μƒμ— μžλ§‰ 및 λŒ€λ³Έ 제곡, μžλ™μž¬μƒ κΈˆμ§€
    • input νƒœκ·Έμ— label 제곡
    • table에 caption을 μ‚¬μš©ν•΄ ν…Œμ΄λΈ”μ˜ λͺ©μ μ„ λͺ…ν™•νžˆ ν•˜κ³ , thead, tbody, th λ₯Ό μ‚¬μš©ν•΄ ꡬ쑰λ₯Ό λͺ…ν™•νžˆ 함.
    • μ»¨ν…μΈ λŠ” μœ„μ—μ„œ μ•„λž˜λ‘œ μ„ ν˜• ꡬ쑰 μœ μ§€

 

data- 속성

μ—…λ°μ΄νŠΈ μ˜ˆμ •

 

local storage vs session storage vs cookie

μ—…λ°μ΄νŠΈ μ˜ˆμ •

 

script vs script async vs script defer

μ—…λ°μ΄νŠΈ μ˜ˆμ •

 

SVG

μ—…λ°μ΄νŠΈ μ˜ˆμ •

 

μ°Έκ³  λ ˆν¬μ§€ν† λ¦¬

https://github.com/junh0328/prepare_frontend_interview/blob/main/html_css.md

 

prepare_frontend_interview/html_css.md at main · junh0328/prepare_frontend_interview

πŸ“š ν”„λ‘ νŠΈμ—”λ“œ 기술 면접을 μœ„ν•œ ν•Έλ“œλΆ λ§Œλ“€κΈ°. Contribute to junh0328/prepare_frontend_interview development by creating an account on GitHub.

github.com

 

https://github.com/baeharam/Must-Know-About-Frontend?tab=readme-ov-file

 

GitHub - baeharam/Must-Know-About-Frontend: :mortar_board: 취쀀생이라면 μ•Œλ©΄ 쒋을 ν”„λ‘ νŠΈμ—”λ“œ κ΄€λ ¨ 지식듀

:mortar_board: 취쀀생이라면 μ•Œλ©΄ 쒋을 ν”„λ‘ νŠΈμ—”λ“œ κ΄€λ ¨ 지식듀. Contribute to baeharam/Must-Know-About-Frontend development by creating an account on GitHub.

github.com

 

728x90