[SEB_FE_45] 2023.04.12 / HTML ๊ธฐ์ดˆ

Kayยท2023๋…„ 4์›” 12์ผ
0

๐Ÿ“– [๊ฐ•์˜ ๋‚ด์šฉ ๋ฐ ๊ฐœ๋… ์ •๋ฆฌ]
๋ชฉ์ฐจ

  • ์›น ๊ฐœ๋ฐœ ์ดํ•ดํ•˜๊ธฐ
  • HTML ๊ธฐ์ดˆ
  • HTML ์‹ฌํ™”
  • ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ œ
  • 2023.04.11 ๋ฆฌ๋ทฐ

[์›น ๊ฐœ๋ฐœ ์ดํ•ดํ•˜๊ธฐ]

์›น ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด

  • HTML: Structure ๊ตฌ์กฐ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋งˆํฌ์—… ์–ธ์–ด
  • CSS: Presentation ๋””์ž์ธ ์š”์†Œ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์Šคํƒ€์ผ ์‹œํŠธ ์–ธ์–ด
  • JS: ๋‹จ์ˆœํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ์œ ์ €์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์–ธ์–ด

Visual Studio Code (VSC)

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ์—๋””ํ„ฐ

VSC์˜ ์ œ์ผ ํฐ ์žฅ์ ์€ ํŽธ๋ฆฌํ•œ extension์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์ธ๋ฐ VSC์˜ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์˜ extension ์†Œ๊ฐœ ํŽ˜์ด์ง€๋ฅผ ์•Œ๋ ค์ฃผ์…จ๋‹ค.
Extension for Visual Studio Code

๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์ด ๋งŽ์ด ์“ฐ๊ฑฐ๋‚˜ ์ตœ๊ทผ ์ถ”๊ฐ€๋œ extension์„ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์žˆ์œผ๋‹ˆ ๊ตฌ๊ฒฝํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

SEB FE์—์„œ ์†Œ๊ฐœํ•ด์ค€ extension์€ "live server"์ด๋‹ค.
HTML ํŒŒ์ผ์„ ์ž‘์„ฑ/์ˆ˜์ •ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ

  • ๊ธฐ์กด
    • HTML ํŒŒ์ผ์„ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์— ๋„์›€
    • ์ €์žฅ -> ๋ธŒ๋ผ์šฐ์ € ์ƒˆ๋กœ๊ณ ์นจ
  • "live server"
    • HTML ํŒŒ์ผ์„ ์„œ๋ฒ„๋กœ ๋„์›€
    • ์ €์žฅ ํ›„ ์ƒˆ๋กœ๊ณ ์นจํ•˜์ง€ ์•Š์•„๋„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ”๋กœ ์ ์šฉ๋จ

๊ทธ ์™ธ์—๋„ ๋งŽ์€ extension๋“ค์ด ์žˆ๋Š”๋ฐ, Git๊ณผ ๊ด€๋ จ๋˜์–ด ๋งค์šฐ ํŽธ๋ฆฌํ•œ extension์„ ์ •๋ฆฌํ•ด์ค€ ๋ธ”๋กœ๊ทธ๊ฐ€ ์žˆ์–ด ๊ธ€์— ๋”ฐ๋ผ ์„ธํŒ…์„ ์ง„ํ–‰ํ•ด ๋ณด์•˜๋‹ค.
tistory - Git ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์œ ์šฉํ•œ VSCode ํ™•์žฅํŒฉ

[HTML ๊ธฐ์ดˆ]

HTML ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๋ฌธ๋ฒ•

  • HTML์€ ํƒœ๊ทธ๋“ค์˜ ์ง‘ํ•ฉ
    • Tag(<>)๋กœ ๋ฌถ์ธ HTML์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ
  • HTML ํŒŒ์ผ ํ™•์žฅ์ž: html
    • ์ฒซ html ํŒŒ์ผ์„ index.html๋กœ ๋ช…๋ช…ํ•˜๋Š” ์ด์œ : ๋ธŒ๋ผ์šฐ์ €๊ฐ€ html ํŒŒ์ผ์„ ์ฐพ์„ ๋•Œ index.html ํŒŒ์ผ์„ ์šฐ์„ ์ ์œผ๋กœ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ์ œ์ผ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํŒŒ์ผ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ตฌ์กฐ: ํŠธ๋ฆฌ๊ตฌ์กฐ
  • MDN ๋ฌธ์„œ: HTML ํƒœ๊ทธ, CSS, web api ๋“ฑ์— ๊ด€ํ•ด ์ •๋ฆฌ๋˜์–ด ์žˆ๋Š” ๋ฌธ์„œ

VSC์—์„œ HTML ํŒŒ์ผ์„ ์ƒ์„ฑ ํ›„ ๋นˆ ํŒŒ์ผ์— HTML ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•: !๋ฅผ ๋ˆ„๋ฅด๊ณ  tab์„ ๋ˆ„๋ฆ„

์ฝ”๋“œ1. VSC์—์„œ ! + tab์„ ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” 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>

ํƒœ๊ทธ ์ „์—ญ ์†์„ฑ

<div
	id="loginBox"
	class="container login-box"
	style="width: 500px;height: 500px;"
    title="๋กœ๊ทธ์ธ ์˜์—ญ"
    data-name="๋กœ๊ทธ์ธ ์˜์—ญ"
>
	<!-- ... -->
</div>

<script>
   // data-์ด๋ฆ„์˜ ๋ฐ์ดํ„ฐ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
   const loginBox = document.querySelector("#loginBox");
   const loginBoxName = loginBox.dataset.name;
   console.log(loginBoxName); // ๋กœ๊ทธ์ธ ์˜์—ญ
</script>
  • title: ์š”์†Œ์˜ ์ •๋ณด๋‚˜ ์„ค๋ช…์„ ์ง€์ •(๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋†“๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋ฉด title์— ์ž‘์„ฑ๋œ ์„ค๋ช…์ด ํˆดํŒ์ฒ˜๋Ÿผ ํ‘œ์‹œ๋จ)
  • id: ํ•ด๋‹น ํƒœ๊ทธ์— ๋Œ€ํ•œ ์œ ๋‹ˆํฌํ•œ ์ด๋ฆ„
    • ๋˜ ๋‹ค๋ฅธ ํƒœ๊ทธ์— loginBox๋ผ๋Š” id๋ฅผ ๋ถ€์—ฌํ•  ๊ฒฝ์šฐ ์›ํ•˜๋Š”๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.
    • selector๋กœ ํ‘œํ˜„ํ•  ๋•Œ #์œผ๋กœ ํ‘œ๊ธฐ
  • class: ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด๋ฆ„์„ ์ค„ ์ˆ˜ ์žˆ์Œ
    • ๋‹ค๋ฅธ ํƒœ๊ทธ์— ๋˜‘๊ฐ™์€ class๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    • selector๋กœ ํ‘œํ˜„ํ•  ๋•Œ .์œผ๋กœ ํ‘œ๊ธฐ
  • style: ์ฃผ๋กœ css ํŒŒ์ผ์— ์ž‘์„ฑํ•œ ์Šคํƒ€์ผ๋ณด๋‹ค ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด style ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • <ํƒœ๊ทธ data-์ด๋ฆ„="๋ฐ์ดํ„ฐ">: ์š”์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •
    • ์ด๋ฆ„์€ ์ž‘์„ฑ์ž๊ฐ€ ์ž„์˜๋กœ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ฃผ๋กœ js์—์„œ ํ•ด๋‹น ํƒœ๊ทธ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

๊ทธ ์™ธ ๊ฐ ํƒœ๊ทธ์— ์†ํ•œ ์†์„ฑ

๊ฐ ํƒœ๊ทธ ๋ณ„๋กœ ์†์„ฑ์ด ์žˆ๋Š”๋ฐ ์ž˜ ์ •๋ฆฌ๋œ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์–ด ๋งํฌ(TCP School)๋ฅผ ๊ฑธ์–ด๋‘์—ˆ๋‹ค.

์‹œ๋งจํ‹ฑ ์š”์†Œ

์ด์ „์— ์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋‘์—ˆ๋˜ ๋งํฌ์ด๋‹ค.
๐Ÿคฟ (0) ์‹œ๋งจํ‹ฑ(Semantic) ๋งˆํฌ์—…์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

[HTML ์‹ฌํ™”]

์•ž์œผ๋กœ ๋” ๊นŠ์ด ์•Œ์•„๋ณด๊ณ  ์‹ถ์€ ํƒœ๊ทธ๋“ค

  • Doctype
    • <!DOCTYPE html>
    • ๋ฌธ์„œ์˜ HTML ๋ฒ„์ „์„ ์ง€์ •
    • DOCTYPE(DTD)์€ ๋งˆํฌ์—… ์–ธ์–ด์—์„œ ๋ฌธ์„œ ํ˜•์‹์„ ์ •์˜ํ•˜๋ฉฐ, ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ค HTML ๋ฒ„์ „์˜ ํ•ด์„ ๋ฐฉ์‹์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ดํ•ดํ•˜๋ฉด ๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์šฉ๋„
  • html ํƒœ๊ทธ
    • HTML ๋ฌธ์„œ๊ฐ€ ์–ด๋””์—์„œ ์‹œ์ž‘ํ•˜๊ณ  ์–ด๋””์—์„œ ๋๋‚˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• 
  • head ํƒœ๊ทธ
    • ๋ฌธ์„œ์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒ”์œ„ ์ฆ‰, ์›นํŽ˜์ด์ง€์˜ ์ œ๋ชฉ, ์„ค๋ช…, ์‚ฌ์šฉํ•  ํŒŒ์ผ ์œ„์น˜ ๋“ฑ์˜ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด์ง€ ์•Š๋Š” ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฒ”์œ„
  • body ํƒœ๊ทธ
    • ๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒ”์œ„ ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด๋Š” ๊ตฌ์กฐ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฒ”์œ„
  • form ํƒœ๊ทธ
  • video ํƒœ๊ทธ
  • track ํƒœ๊ทธ
  • canvas ํƒœ๊ทธ
  • iframe ํƒœ๊ทธ

์•ž์œผ๋กœ ๋” ๊นŠ์ด ์•Œ์•„๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ

  • emmet
    • HTML, XML, XSL ๋ฌธ์„œ ๋“ฑ์„ ํŽธ์ง‘ํ•  ๋•Œ ๋น ๋ฅธ ์ฝ”๋”ฉ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ (์ž๋™์™„์„ฑ์„ ๋„์›€)
  • ์Šคํฌ๋ฆฐ๋ฆฌ๋”
    • How A Screen Reader User Accesses The Web: A Smashing Video
    • ์ด๋ฒˆ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ •๋ฆฌํ•˜๋ฉฐ ์Šคํฌ๋ฆฐ๋ฆฌ๋” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค.
    • ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•ด์žˆ๋Š” ๊ณณ์ด ์ฃผํ™ฉ์ƒ‰ ๋ฐ•์Šค๋กœ ํ‘œ์‹œ๋˜๋ฉฐ ํ…์ŠคํŠธ ๋‚ด์šฉ๊ณผ ํƒœ๊ทธ๋ฅผ ์ฝ์–ด์ค€๋‹ค.
      • ์˜ˆ์‹œ) "์Šคํฌ๋ฆฐ๋ฆฌ๋” ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ ์ œ๋ชฉ1"
    • aria-label์ด๋‚˜ img ํƒœ๊ทธ์˜ alt, input ํƒœ๊ทธ์˜ title ๋“ฑ์„ ์ž˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‘๊ฐ€ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  ์Šคํฌ๋ฆฐ๋ฆฌ๋”์—์„œ ํƒœ๊ทธ ์ด๋ฆ„์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค๋Š” ์ ์€ ์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์ด ์ค‘์š”ํ•œ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

[๋ฐฐ์šด ๋‚ด์šฉ์„ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ œ]

HTML ํƒœ๊ทธ์™€ ๊ฐ„๋‹จํ•œ CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๊ธฐ์†Œ๊ฐœ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค.

[2023.04.11 ๋ฆฌ๋ทฐ]

๊ฐ•์˜ ์ฒซ๋ฒˆ์งธ ์‹œ๊ฐ„์œผ๋กœ HTML์— ๋Œ€ํ•œ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค. HTML์„ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๋ฐฐ์šธ ๊ฒƒ๋“ค์ด

์–ด์ œ "ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์š”์ฒญ์„ POST๋กœ ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ ๊ฐ™์•„?"๋ผ๋Š” ์งˆ๋ฌธ์„ ๋“ค์—ˆ๋‹ค.
๋ฌผ๋ก  POST๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ restful ํ•˜์ง€์•Š์ง€๋งŒ, ์š”๊ตฌ์‚ฌํ•ญ์ด ๋“ค์–ด์™”์„ ๋•Œ๋Š” ํ•ด์•ผ๋งŒ ํ•œ๋‹ค.
๋„์ €ํžˆ ๋ฐฉ๋ฒ•์ด ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•„ ๋ฐฉ๋ฒ•์„ ๋ฌผ์–ด๋ณด๋‹ˆ "form ํƒœ๊ทธ๋กœ ํ•ด๊ฒฐ"ํ–ˆ๋‹ค๋Š” ๋‹ต๋ณ€์„ ๋“ค์—ˆ๋‹ค.

div, p, ol, ul ๋“ฑ ์ž์ฃผ ์“ฐ๋Š” ํƒœ๊ทธ๋“ค์€ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด๊ฐ€์ง€๋งŒ
์ž์ฃผ ์“ฐ๋Š” ํƒœ๊ทธ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ค‘์š”ํ•œ ํƒœ๊ทธ๋“ค์ธ form, video ์™€ ๊ฐ™์€ ํƒœ๊ทธ๋Š” ์ž˜ ๋ชจ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์กฐ๊ธˆ ๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€