🧐 HTML νƒœκ·Έ λœ―μ–΄λ³΄κΈ°

κΉ€μ² μ€€Β·2022λ…„ 4μ›” 25일
0

HTML

λͺ©λ‘ 보기
2/4

웹을 λ§Œλ“€ λ•Œ html을 기반으둜 λ§Œλ“ λ‹€.
javascript, react, typescript , next.js 등을 κ³΅λΆ€ν•˜λ‹€ 문득 그런 생각이 λ“€μ—ˆλ‹€.

"html νƒœκ·Έλ₯Ό λ‚΄κ°€ 잘 μ•Œκ³  μžˆμ„κΉŒ?"
μ΄λŸ¬ν•œ 생각이 λ“€μ–΄ μ˜€λŠ˜μ€ κ·Έλ™μ•ˆ 무심코 μ§€λ‚˜μ³μ™”λ˜ htmlνƒœκ·Έλ“€μ„ μžμ„Ένžˆ μ•Œμ•„λ³΄κ³ μž ν•œλ‹€.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>

!DOCTYPE html

!DOCTYPE html
!DOCTYPE html은 html 버전이 html 5μž„μ„ μ•Œλ €μ€€λ‹€.

DOCTYPE 선언은 html νƒœκ·Έλ₯Ό μ •μ˜ν•˜κΈ° 전에 λ¨Όμ € μ„ μ–Έλ˜μ•Όν•œλ‹€.

μ΄λŠ” HTML 버전이 무엇인지λ₯Ό μ›Ή λΈŒλΌμš°μ €μ—κ²Œ μ•Œλ €μ£ΌλŠ” 역할을 ν•˜λ©° HTML 버전이 HTML5λ²„μ „μž„μ„ μ•Œλ €μ€€λ‹€.

HTML5λŠ” μ—¬λŸ¬ λΈŒλΌμš°μ €μ—μ„œ ν˜Έν™˜μ΄ λ˜λŠ” 것을 λ³Ό 수 μžˆλ‹€.

html tag

<html lang='en'></html>

html tagλŠ” html λ¬Έμ„œμ˜ 근간이 λ˜λŠ” νƒœκ·Έμ΄λ‹€.

html νƒœκ·ΈλŠ” λͺ¨λ“  html μš”μ†Œλ“€μ„ 담을 수 μžˆλŠ” μ»¨ν…Œμ΄λ„ˆ νƒœκ·Έμ΄λ‹€.

html νƒœκ·ΈλŠ” μ›Ή μ‚¬μ΄νŠΈκ°€ μ–΄λ–€ μ–Έμ–΄λ₯Ό κ·Όκ°„μœΌλ‘œ λ§Œλ“€μ–΄μ‘ŒλŠ”μ§€ λΈŒλΌμš°μ €μ—κ²Œ μ•Œλ €μ£ΌκΈ° μœ„ν•΄ lang atrributeλ₯Ό ν¬ν•¨ν•œλ‹€.

head tag

headνƒœκ·ΈλŠ” title , style , meta , link , script, base νƒœκ·Έλ₯Ό 담을 수 μžˆλŠ” μ»¨ν…Œμ΄λ„ˆ νƒœκ·Έμ΄λ‹€.

metadataλŠ” html λ¬Έμ„œμ— λŒ€ν•œ 정보λ₯Ό ν‘œν˜„ν•΄μ£ΌλŠ” νƒœκ·Έμ΄λ‹€.

title tag

title νƒœκ·ΈλŠ” κ²€μƒ‰μ—”μ§„μ΅œμ ν™”(SEO)에 μ€‘μš”ν•œ 영ν–₯을 λ―ΈμΉ˜λŠ” μš”μ†Œ 쀑 ν•˜λ‚˜μ΄λ‹€.

즉, ν•΄λ‹Ή 웹을 κ²€μƒ‰ν•˜μ˜€μ„ λ•Œ 검색엔진이 잘 찾을 수 μžˆλ„λ‘ 제λͺ©μ„ 적절히 μ„ μ •ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

일반적으둜 짧고 함좕적이 제λͺ©λ³΄λ‹€ κΈΈκ³  λ¬˜μ‚¬μ μΈ 제λͺ©μ΄ 검색 엔진이 ν¬λ‘€λ§ν•˜κΈ° 더 μ’‹λ‹€.

λ”°λΌμ„œ λΈ”λ‘œκ·Έ , e-commerce 같은 짧은 제λͺ©λ³΄λ‹€ ν•΄λ‹Ή 웹을 잘 λ¬˜μ‚¬ν•  수 μžˆλŠ” (λ‹Ήμ‹ μ˜ 일상과 κΈ°μˆ μ„ 기둝할 수 μžˆλŠ” λΈ”λ‘œκ·Έμ™€ 같은) λ¬˜μ‚¬μ μΈ μ–΄κ΅¬λ‘œ ν‘œν˜„ν•˜λŠ” 것이 μ’‹λ‹€.

meta tag

메타데이터λ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” νƒœκ·Έμ΄λ‹€.

메타데이터

  • 데이터λ₯Ό λ¬˜μ‚¬ν•  수 μžˆλŠ” 데이터
  • λ¬Έμ„œ 및 웹에 λŒ€ν•œ 정보λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데이터 νƒœκ·Έ
  • λΈŒλΌμš°μ €, 검색엔진 등에 μ˜ν•΄ μ‚¬μš©λ¨.

meta charset

<meta charset = "UTF-8" />
html λ¬Έμ„œμ˜ 문자 인코딩 방식을 선언해쀄 수 μžˆλŠ” νƒœκ·Έμ΄λ‹€.

인코딩은 νŠΉμ •ν•œ 문자λ₯Ό λ‹€λ₯Έ ν˜•νƒœμ˜ 문자 및 μ½”λ“œλ‘œ νŒŒμ‹±ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 방식을 λ§ν•œλ‹€.

html 인코딩은 λΈŒλΌμš°μ €κ°€ μ•„μŠ€ν‚€ μ½”λ“œκ°€ μ•„λ‹Œ λ¬Έμžμ—΄μ„ νŒŒμ‹±ν•˜μ—¬ ν‘œμ€€μ μΈ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚Ό 수 있게 ν•œλ‹€.

λ˜ν•œ μ΄λŠ” header 정보λ₯Ό μ„œλ²„λ‘œ 보내어 htmlμ½”λ“œλ₯Ό 일반 text둜 λ³΄μ—¬μ§€κ²Œ ν•΄μ€€λ‹€.

즉, 이 νƒœκ·Έμ˜ 역할은 htmlλ‚΄μ—μ„œ μ›Ή 및 λ¬Έμ„œλ₯Ό ν‘œν˜„ν•˜λŠ”λ°μ— μ•„μŠ€ν‚€μ½”λ“œμ™Έμ— λ‹€μ–‘ν•œ 문자λ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜λŠ”λ° 이λ₯Ό UTF-8μ΄λΌλŠ” ν‘œμ€€μ μΈ 인코딩 λ°©μ‹μœΌλ‘œ νŒŒμ‹±ν•˜μ—¬ λΈŒλΌμš°μ €μ—μ„œ λ³΄μ—¬μ§ˆ 수 있게 ν•˜λŠ” 것이닀.

charset = "UTF-8"을 μ„ μ–Έν•΄μ£Όμ§€μ•ŠμœΌλ©΄ λ‚΄κ°€ htmlλ‚΄μ—μ„œ μ“΄ text듀이 μ›Ή λΈŒλΌμš°μ €λ‚΄μ—μ„œ μ΄μƒν•˜κ²Œ λ³΄μ—¬μ§ˆ 수 μžˆλ‹€.

문자 인코딩
μ—¬λŸ¬κ°€μ§€ λ¬Έμžμ—΄λ“€μ€ μž…λ ₯ν•˜μ˜€μ„ λ•Œ μ»΄ν“¨ν„°λŠ” 이λ₯Ό byteλ“€μ˜ μ§‘ν•©μœΌλ‘œ μΈμ‹ν•œλ‹€.
문자 인코딩 방식에 따라 byte의 배열이 λ¬Έμžμ—΄λ‘œ λ³€ν™˜λ˜λŠ” 방식을 κ²°μ •ν•œλ‹€.

μ•„μŠ€ν‚€ μ½”λ“œ(American Standard Code for Information Interchange)
μ—¬λŸ¬ 가지 정보λ₯Ό κ΅ν™˜ν•˜κΈ° μœ„ν•΄ 정해진 ν‘œμ€€ μ½”λ“œ

UTF-8(Unicode Transformation Format 8-bit)
인코딩 λ°©μ‹μœΌλ‘œ λ‹€μ–‘ν•œ λ¬Έμžμ— λŒ€ν•˜μ—¬ ν˜Έν™˜μ„±μ΄ μ’‹μœΌλ―€λ‘œ htmlλ‚΄μ—μ„œ μ‚¬μš©ν•˜κ³  있으며 ν˜„λŒ€ ν‘œμ€€ 인코딩 포멧이닀.
λ˜ν•œ UTF-8은 μ•„μŠ€ν‚€ μ½”λ“œμ™€ ν˜Έν™˜μ΄ λœλ‹€.
즉, UTF-8 인코딩 방식은 μ•„μŠ€ν‚€ μ½”λ“œκ°€ μ•„λ‹Œ λ¬Έμžμ—΄λ“€μ„ 읽을 수 있으며 ν˜Έν™˜μ΄ λ˜λ„λ‘ν•΄μ€€λ‹€.

Ref

meta http-equiv

<meta http-equiv="" content=""/>
http-equivλŠ” http headerμ—κ²Œ νŠΉμ • 값을 전달해쀀닀.

http header
ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ 톡신할 λ•Œ 전달할 수 μžˆλŠ” 뢀가정보

  • <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    λ Œλ”λ§ν•  μ›Ήμ˜ Internet Explorer버전을 λͺ…μ‹œν•΄μ€„ 수 μžˆλ‹€.
    μ΅œμ‹  λΈŒλΌμš°μ € 버전을 μ‚¬μš©ν•˜κ³  μžˆλ‹€λ©΄ ν•΄λ‹Ή νƒœκ·Έλ₯Ό μ‚¬μš©ν•  ν•„μš”κ°€ μ—†λ‹€.

  • <meta http-equiv="content-language" content="ko"/>
    html λ¬Έμ„œμ˜ μ–Έμ–΄ νƒ€μž…μ„ λͺ…μ‹œν•΄μ£Όλ©° μ΄λŠ” html νƒœκ·Έ μ†μ„±μ—μ„œ λͺ…μ‹œν•˜λ―€λ‘œμ¨ λŒ€μ²΄ κ°€λŠ₯ν•˜λ‹€.
    (<html lang="ko"></html>)

  • <meta http-equiv="Content-Security-Policy" content="default-src 'self'">
    λ¬Έμ„œμ— λŒ€ν•œ μ½˜ν…μΈ  λ³΄μ•ˆ 정책을 지정할 수 μžˆλ‹€.
    μ™ΈλΆ€λ‘œλΆ€ν„° XSS곡격을 막을 수 μžˆλ„λ‘ 톡신 origin λ¦¬μ†Œμ†Œλ₯Ό λͺ…μ‹œν•΄μ€€λ‹€.
    이 νƒœκ·Έ 속성을 λͺ…μ‹œν•΄μ€ŒμœΌλ‘œμ¨ κ³΅κ²©μžλ“€μ΄ μ•…μ„± μ½”λ“œλ₯Ό μ£Όμž…ν•˜λŠ” 것을 막아쀀닀.

  • <meta http-equiv="content-type" content="text/html" charset="UTF-8"/>
    λ¬Έμ„œμ˜ MIME TYPE을 μ§€μ •ν•΄μ£ΌλŠ” 속성
    인코딩 방식을 지정해쀄 수 μžˆλŠ” 속성이며 <meta charset="UTF-8"/>둜 더 νŽΈλ¦¬ν•˜κ²Œ 속성을 지정할 수 μžˆλ‹€.

Ref

meta name

웹에 λŒ€ν•œ ν‚€μ›Œλ“œ,μ„€λͺ…,μ €μž,뷰포트 λ“±μ˜ 속성을 λͺ…μ‹œν•΄μ€„ 수 있으며 κ²€μƒ‰μ—”μ§„μ΅œμ ν™”(SEO)λ₯Ό ν•˜λŠ”λ° μ‚¬μš©ν•œλ‹€.

  • <meta name="keywords" content="HTML, CSS, JavaScript">
    검색엔진이 ν‚€μ›Œλ“œλ₯Ό 찾도둝 웹에 λŒ€ν•œ ν‚€μ›Œλ“œ 지정

  • <meta name="description" content="Free Web tutorials for HTML and CSS">
    웹에 λŒ€ν•œ μ„€λͺ…을 지정

  • <meta name="author" content="Jev">
    웹을 λ§Œλ“  μ €μžλ₯Ό 지정

  • <meta name="viewport" content="width=device-width, initial-scale=1.0">
    웹을 λͺ¨λ“  κΈ°κΈ°μ—μ„œ 잘 보이도둝 ν•˜κΈ° μœ„ν•œ 속성 지정
    width=device-width속성은 λ””λ°”μ΄μŠ€μ˜ λ„ˆλΉ„μ— 맞좰 νŽ˜μ΄μ§€μ˜ λ„ˆλΉ„κ°€ μ§€μ •λ˜λ„λ‘ μ„€μ •ν•˜λŠ” 속성 이닀.
    initial-scale 속성은 웹이 처음 λ‘œλ”©λ  λ•Œ μΆ•μ†Œ/ν™•λŒ€ 기쀀을 μ„€μ •ν•˜λŠ” 속성이닀.

마무리..

주둜 headνƒœκ·Έμ•ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” νƒœκ·Έλ“€μ„ μ•Œμ•„λ³΄μ•˜λŠ”λ° ν‰μ†Œμ— μžˆλŠ” snippet에 μ˜ν•˜μ—¬ μ‚¬μš©ν•˜λ©° κ±΄λ“œλ¦΄ 뢀뢄이 λ³„λ‘œ μ—†λŠ” νƒœκ·Έλ“€μ΄λ‹€.

ν•˜μ§€λ§Œ νŠΉμ • μƒν™©μ΄λ‚˜ κ²€μƒ‰μ—”μ§„μ΅œμ ν™”λ₯Ό μœ„ν•΄ title,h1,meta name νƒœκ·Έ 등을 μ„€μ •ν•˜λŠ” 것은 ν•„μš”ν•˜λ―€λ‘œ ν”„λ‘œμ νŠΈλ₯Ό ꡬ성할 λ•Œ μ‹ κ²½μ¨μ•Όλ˜κ² λ‹€λΌλŠ” 생각이 λ“€μ—ˆλ‹€.

0개의 λŒ“κΈ€