์ฝ˜ํ…์ธ  ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ - ๐ŸŒ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ: Critical Rendering Path ๐Ÿš€

๐ŸŒ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ: Critical Rendering Path ๐Ÿš€

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ ์›น ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ผญ ์•Œ์•„์•ผ ํ•  ์ดˆ์ค‘์š” ํ† ํ”ฝ, "๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •"์— ๋Œ€ํ•ด ๊นŠ์ด ํŒŒํ—ค์ณ๋ณผ ๊ฑฐ์˜ˆ์š”. ํŠนํžˆ Critical Rendering Path(CRP)๋ผ๋Š” ๊ฐœ๋…์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ•  ๊ฑด๋ฐ์š”, ์ด๊ฒŒ ๋ญ”์ง€ ์•„์ง ๋ชจ๋ฅด๊ฒ ๋‹ค๊ตฌ์š”? ๊ฑฑ์ • ๋งˆ์„ธ์š”! ์ง€๊ธˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”. ๐Ÿ˜‰

์šฐ๋ฆฌ๊ฐ€ ๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €, ๊ทธ ์•ˆ์—์„œ ์–ด๋–ค ๋งˆ๋ฒ• ๊ฐ™์€ ์ผ์ด ๋ฒŒ์–ด์ง€๋Š”์ง€ ๊ถ๊ธˆํ•˜์ง€ ์•Š์œผ์…จ๋‚˜์š”? ์šฐ๋ฆฌ๊ฐ€ URL์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์›น ํŽ˜์ด์ง€๊ฐ€ ์šฐ๋ฆฌ ๋ˆˆ์•ž์— ๋‚˜ํƒ€๋‚˜๊ธฐ๊นŒ์ง€, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ •๋ง ์—ด์‹ฌํžˆ ์ผํ•˜๊ณ  ์žˆ๋‹ต๋‹ˆ๋‹ค. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ๋‹ค์–‘ํ•œ ์žฌ๋Šฅ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ด ์—ด์‹ฌํžˆ ์ผํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์ฃ ! ๐Ÿค“

์ž, ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •์„ ์‚ดํŽด๋ณผ ํ…๋ฐ์š”. ์ด ๊ณผ์ •์„ ์ดํ•ดํ•˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ์›น ๊ฐœ๋ฐœ ์‹ค๋ ฅ์ด ํ•œ์ธต ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๊ฑฐ์˜ˆ์š”. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ์ƒˆ๋กœ์šด ์Šคํ‚ฌ์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์ฃ ! ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? ๐Ÿš€

๐ŸŒˆ Critical Rendering Path๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Critical Rendering Path(CRP)๋ผ... ๋ญ”๊ฐ€ ์–ด๋ ค์›Œ ๋ณด์ด๋Š” ์ด๋ฆ„์ด์ฃ ? ใ…‹ใ…‹ใ…‹ ๊ฑฑ์ • ๋งˆ์„ธ์š”! ์ƒ๊ฐ๋ณด๋‹ค ์‰ฌ์šด ๊ฐœ๋…์ด์—์š”. ๐Ÿค—

CRP๋Š” ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, JavaScript๋ฅผ ํ™”๋ฉด์— ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ผ๋ จ์˜ ๋‹จ๊ณ„๋ฅผ ๋งํ•ด์š”. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋‚˜์„œ ํ™”๋ฉด์— ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜๊ธฐ๊นŒ์ง€์˜ ๋ชจ๋“  ๊ณผ์ •์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์ฃ .

์ด ๊ณผ์ •์€ ๋งˆ์น˜ ์š”๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•ด์š”. ์žฌ๋ฃŒ(HTML, CSS, JS)๋ฅผ ์ค€๋น„ํ•˜๊ณ , ์กฐ๋ฆฌํ•˜๊ณ (ํŒŒ์‹ฑ), ํ”Œ๋ ˆ์ดํŒ…(๋ Œ๋”๋ง)ํ•˜๋Š” ๊ณผ์ •์ด๋ž„๊นŒ์š”? ๐Ÿณ

๐Ÿ’ก ์•Œ์•„๋‘์„ธ์š”: CRP๋ฅผ ์ตœ์ ํ™”ํ•˜๋ฉด ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”. ์ด๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ๊ฐœ์„ ํ•˜๊ณ , ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO)์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค!

์ž, ์ด์ œ CRP์˜ ๊ฐ ๋‹จ๊ณ„๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณผ๊นŒ์š”? ์ค€๋น„๋˜์…จ๋‚˜์š”? ๊ทธ๋Ÿผ ๊ณ ๊ณ ! ๐Ÿš€

๐Ÿ” CRP์˜ ์ฃผ์š” ๋‹จ๊ณ„

CRP๋Š” ํฌ๊ฒŒ 6๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์š”. ๊ฐ ๋‹จ๊ณ„๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด์„œ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ป๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ๊ทธ๋ ค๋‚ด๋Š”์ง€ ์ดํ•ดํ•ด๋ด์š”!

  1. DOM (Document Object Model) ๊ตฌ์ถ•
  2. CSSOM (CSS Object Model) ๊ตฌ์ถ•
  3. JavaScript ์‹คํ–‰
  4. ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•
  5. ๋ ˆ์ด์•„์›ƒ
  6. ํŽ˜์ธํŠธ

์ด ๋‹จ๊ณ„๋“ค์ด ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ๊ทธ๋ฆผ์œผ๋กœ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”? ๐Ÿ–ผ๏ธ

Critical Rendering Path ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ฒฝ๋กœ๋ฅผ ๋‹จ์ˆœํ•œ ํ”Œ๋กœ์šฐ์ฐจํŠธ๋กœ ํ‘œํ˜„ํ•œ ์ธํฌ๊ทธ๋ž˜ํ”ฝ. DOM ๊ตฌ์ถ•, CSSOM ๊ตฌ์ถ•, JavaScript ์‹คํ–‰, ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•, ๋ ˆ์ด์•„์›ƒ, ํŽ˜์ธํŠธ ๋‹จ๊ณ„์™€ ํ™”์‚ดํ‘œ ์—ฐ๊ฒฐ. ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ฒฝ๋กœ (Critical Rendering Path) DOM ๊ตฌ์ถ• CSSOM ๊ตฌ์ถ• JavaScript ์‹คํ–‰ ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ• ๋ ˆ์ด์•„์›ƒ ํŽ˜์ธํŠธ

์™€~ ๋ญ”๊ฐ€ ๋ณต์žกํ•ด ๋ณด์ด์ฃ ? ใ…‹ใ…‹ใ…‹ ํ•˜์ง€๋งŒ ๊ฑฑ์ • ๋งˆ์„ธ์š”. ํ•˜๋‚˜์”ฉ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”! ๐Ÿ˜‰

๐ŸŒณ 1๋‹จ๊ณ„: DOM (Document Object Model) ๊ตฌ์ถ•

์ž, ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐ ๋‹จ๊ณ„๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณผ ์ฐจ๋ก€์˜ˆ์š”. ์ฒซ ๋ฒˆ์งธ๋Š” DOM ๊ตฌ์ถ• ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค! ๐Ÿ—๏ธ

DOM์ด ๋ญ๋ƒ๊ตฌ์š”? ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ HTML ๋ฌธ์„œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ˆ์š”. ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ์ฝ์–ด DOM์„ ๋งŒ๋“ค์–ด๋‚ด๋Š”๋ฐ, ์ด ๊ณผ์ •์„ "ํŒŒ์‹ฑ"์ด๋ผ๊ณ  ํ•ด์š”.

์˜ˆ๋ฅผ ๋“ค์–ด๋ณผ๊นŒ์š”? ๋‹ค์Œ๊ณผ ๊ฐ™์€ HTML์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด์š”:


<!DOCTYPE html>
<html>
<head>
  <title>์žฌ๋Šฅ๋„ท - ๋‹น์‹ ์˜ ์žฌ๋Šฅ์„ ๋‚˜๋ˆ„์„ธ์š”!</title>
</head>
<body>
  <h1>ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!</h1>
  <p>์žฌ๋Šฅ๋„ท์—์„œ ๋‹น์‹ ์˜ ์žฌ๋Šฅ์„ ๊ณต์œ ํ•˜์„ธ์š”.</p>
</body>
</html>

์ด HTML์„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฝ์œผ๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ DOM ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด์š”:

DOM ํŠธ๋ฆฌ ๊ตฌ์กฐ html head body title h1 p

์™€์šฐ! ์ด๋ ‡๊ฒŒ ๋ณต์žกํ•œ ๊ตฌ์กฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋„ค์š”. ๐Ÿ˜ฒ ํ•˜์ง€๋งŒ ๊ฑฑ์ • ๋งˆ์„ธ์š”. ์ด ๊ตฌ์กฐ ๋•๋ถ„์— ์šฐ๋ฆฌ๋Š” JavaScript๋กœ ์›น ํŽ˜์ด์ง€์˜ ์š”์†Œ๋“ค์„ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

๐ŸŽ“ ๊ฟ€ํŒ: DOM ๊ตฌ์ถ• ๊ณผ์ •์—์„œ <script> ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด ํŒŒ์‹ฑ์ด ์ค‘๋‹จ๋˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋ผ์š”. ๊ทธ๋ž˜์„œ ๋ณดํ†ต <script> ํƒœ๊ทธ๋Š” <body> ํƒœ๊ทธ์˜ ๋งจ ๋์— ์œ„์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ต๋‹ˆ๋‹ค!

์ž, ์ด์ œ DOM ๊ตฌ์ถ•์— ๋Œ€ํ•ด ์ดํ•ดํ•˜์…จ๋‚˜์š”? ๋‹ค์Œ์€ CSSOM ๊ตฌ์ถ• ๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ณผ ๊ฑฐ์˜ˆ์š”. ์ค€๋น„๋˜์…จ์ฃ ? ๊ณ ๊ณ ! ๐Ÿš€

๐ŸŽจ 2๋‹จ๊ณ„: CSSOM (CSS Object Model) ๊ตฌ์ถ•

์ž, ์ด์ œ ์šฐ๋ฆฌ์˜ ์›น ํŽ˜์ด์ง€์— ์Šคํƒ€์ผ์„ ์ž…ํ˜€๋ณผ ์‹œ๊ฐ„์ด์—์š”! ๐Ÿ–Œ๏ธ CSSOM์€ CSS์˜ ๊ฐ์ฒด ํ‘œํ˜„์ด์—์š”. DOM์ด HTML์„ ํ‘œํ˜„ํ•œ๋‹ค๋ฉด, CSSOM์€ CSS๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฑฐ์ฃ .

๋ธŒ๋ผ์šฐ์ €๋Š” CSS๋ฅผ ๋งŒ๋‚˜๋ฉด ์ด๋ฅผ ํŒŒ์‹ฑํ•ด์„œ CSSOM์„ ๋งŒ๋“ค์–ด์š”. ์ด ๊ณผ์ •์€ DOM ๊ตฌ์ถ•๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, CSS์—๋Š” ๋ช‡ ๊ฐ€์ง€ ํŠน๋ณ„ํ•œ ๊ทœ์น™์ด ์žˆ์–ด์š”.

๐Ÿง  ๊ธฐ์–ตํ•˜์„ธ์š”: CSS๋Š” ์บ์Šค์ผ€์ด๋”ฉ(Cascading)์ด๋ผ๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์š”. ์ด๋Š” ์Šคํƒ€์ผ์ด ์ƒ์œ„ ์š”์†Œ๋กœ๋ถ€ํ„ฐ ํ•˜์œ„ ์š”์†Œ๋กœ 'ํ˜๋Ÿฌ๋‚ด๋ฆฐ๋‹ค'๋Š” ์˜๋ฏธ์˜ˆ์š”. ๊ทธ๋ž˜์„œ CSSOM์„ ๋งŒ๋“ค ๋•Œ๋Š” ์ด ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ด์š”!

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณผ๊นŒ์š”? ๋‹ค์Œ๊ณผ ๊ฐ™์€ CSS๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด์š”:


body {
  font-size: 16px;
}

h1 {
  color: #333;
  font-size: 24px;
}

p {
  color: #666;
}

์ด CSS๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ CSSOM์„ ๋งŒ๋“ค์–ด๋‚ด์š”:

CSSOM ํŠธ๋ฆฌ ๊ตฌ์กฐ body h1 p font-size: 16px color: #333 font-size: 24px color: #666 font-size: 16px

๋ณด์ด์‹œ๋‚˜์š”? body์˜ font-size๊ฐ€ p ์š”์†Œ์—๋„ ์ ์šฉ๋˜์—ˆ์–ด์š”. ์ด๊ฒŒ ๋ฐ”๋กœ ์บ์Šค์ผ€์ด๋”ฉ์˜ ํšจ๊ณผ๋ž๋‹ˆ๋‹ค! ๐Ÿ˜Ž

CSSOM ๊ตฌ์ถ•์€ ๋ Œ๋”๋ง ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค(render blocking resource)์˜ˆ์š”. ์ฆ‰, CSSOM์ด ์™„์„ฑ๋  ๋•Œ๊นŒ์ง€ ๋ธŒ๋ผ์šฐ์ €๋Š” ํŽ˜์ด์ง€ ๋ Œ๋”๋ง์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์•„์š”. ๊ทธ๋ž˜์„œ CSS๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋กœ๋“œ๋˜๊ณ  ๊ฐ„๊ฒฐํ•ด์•ผ ํ•ด์š”.

๐Ÿ’ก ํ”„๋กœ ํŒ: CSS ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”:

  • ๋ถˆํ•„์š”ํ•œ CSS ์ œ๊ฑฐ
  • CSS ์••์ถ•
  • CSS ์Šคํ”„๋ผ์ดํŠธ ์‚ฌ์šฉ
  • ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ํ™œ์šฉ

์™€~ CSSOM๊นŒ์ง€ ์™„์„ฑํ–ˆ์–ด์š”! ์ด์ œ ์šฐ๋ฆฌ ์›น ํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ(DOM)์™€ ์Šคํƒ€์ผ(CSSOM)์ด ์ค€๋น„๋˜์—ˆ๋„ค์š”. ๋‹ค์Œ์€ ๋ญ˜๊นŒ์š”? ๋ฐ”๋กœ JavaScript ์‹คํ–‰์ด์—์š”! ๐Ÿš€

๐Ÿง  3๋‹จ๊ณ„: JavaScript ์‹คํ–‰

์ž, ์ด์ œ ์šฐ๋ฆฌ ์›น ํŽ˜์ด์ง€์— ์ƒ๋™๊ฐ์„ ๋ถˆ์–ด๋„ฃ์„ ์ฐจ๋ก€์˜ˆ์š”! JavaScript๊ฐ€ ๋“ฑ์žฅํ•  ์‹œ๊ฐ„์ด์ฃ . ๐ŸŽญ

JavaScript๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•ต์‹ฌ ์š”์†Œ์˜ˆ์š”. DOM๊ณผ CSSOM์„ ์กฐ์ž‘ํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ๋ฐ˜์‘ํ•˜๊ณ , ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ฃ .

๐ŸŽญ ์žฌ๋ฏธ์žˆ๋Š” ์‚ฌ์‹ค: JavaScript๋Š” ํŒŒ์„œ ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค(parser blocking resource)์˜ˆ์š”. ์ฆ‰, JavaScript๋ฅผ ๋งŒ๋‚˜๋ฉด HTML ํŒŒ์‹ฑ์ด ์ค‘๋‹จ๋˜๊ณ  JavaScript๊ฐ€ ์‹คํ–‰๋ผ์š”. ๊ทธ๋ž˜์„œ JavaScript ํŒŒ์ผ์˜ ์œ„์น˜๊ฐ€ ์ค‘์š”ํ•˜๋‹ต๋‹ˆ๋‹ค!

JavaScript๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณผ๊นŒ์š”?

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ <script> ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด HTML ํŒŒ์‹ฑ์„ ์ค‘๋‹จํ•ด์š”.
  2. JavaScript ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํŒŒ์‹ฑํ•ด์š”.
  3. JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์š”.
  4. HTML ํŒŒ์‹ฑ์„ ์žฌ๊ฐœํ•ด์š”.

์ด ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋˜๊ฒ ๋„ค์š”:

JavaScript ์‹คํ–‰ ๊ณผ์ • HTML ํŒŒ์‹ฑ JS ๋‹ค์šด๋กœ๋“œ JS ์‹คํ–‰ HTML ํŒŒ์‹ฑ ์žฌ๊ฐœ

์ด๋Ÿฐ ๊ณผ์ • ๋•Œ๋ฌธ์— JavaScript ํŒŒ์ผ์ด ํฌ๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋А๋ฆฌ๋ฉด ํŽ˜์ด์ง€ ๋กœ๋”ฉ์ด ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์–ด์š”. ๊ทธ๋ž˜์„œ JavaScript ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•˜๋‹ต๋‹ˆ๋‹ค!

๐Ÿš€ ์ตœ์ ํ™” ํŒ:

  • JavaScript ํŒŒ์ผ์„ ์••์ถ•ํ•˜์„ธ์š”.
  • ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์„ธ์š”.
  • async๋‚˜ defer ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…์„ ํ™œ์šฉํ•˜์„ธ์š”.

JavaScript ์‹คํ–‰ ๋‹จ๊ณ„์—์„œ๋Š” DOM์ด๋‚˜ CSSOM์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ฃ :


document.querySelector('h1').style.color = 'blue';
const newParagraph = document.createElement('p');
newParagraph.textContent = '์žฌ๋Šฅ๋„ท์—์„œ ์ƒˆ๋กœ์šด ์žฌ๋Šฅ์„ ๋ฐœ๊ฒฌํ•˜์„ธ์š”!';
document.body.appendChild(newParagraph);

์ด ์ฝ”๋“œ๋Š” h1 ์š”์†Œ์˜ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๊ณ , ์ƒˆ๋กœ์šด p ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. ์ด๋ ‡๊ฒŒ JavaScript๋ฅผ ํ†ตํ•ด ๋™์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค!

์ž, ์ด์ œ JavaScript ์‹คํ–‰ ๋‹จ๊ณ„๊นŒ์ง€ ๋งˆ์ณค์–ด์š”. ๋‹ค์Œ์€ ๋ญ˜๊นŒ์š”? ๋ฐ”๋กœ ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•์ด์—์š”! ์šฐ๋ฆฌ์˜ ์—ฌ์ •์ด ์ ์  ๋” ํฅ๋ฏธ์ง„์ง„ํ•ด์ง€๊ณ  ์žˆ์–ด์š”. ๊ณ„์† ๋”ฐ๋ผ์™€์ฃผ์„ธ์š”! ๐Ÿš€

๐ŸŒณ 4๋‹จ๊ณ„: ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•

์™€~ ๋“œ๋””์–ด ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์‹œ๊ฐ„์ด์—์š”! ๐ŸŽจ ์ด ๋‹จ๊ณ„๋Š” ์ •๋ง ์‹ ๋‚˜๋Š” ๋‹จ๊ณ„์˜ˆ์š”. ์™œ๋ƒ๊ตฌ์š”? DOM๊ณผ CSSOM์ด ๋งŒ๋‚˜ ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ทธ๋ ค์งˆ ๋‚ด์šฉ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ !

๋ Œ๋” ํŠธ๋ฆฌ๋Š” ํŽ˜์ด์ง€์—์„œ ๋ณด์ด๋Š” ๋ชจ๋“  ์š”์†Œ์™€ ๊ทธ ์š”์†Œ์˜ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ํฌํ•จํ•ด์š”. ์ฆ‰, ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ทธ๋ ค์งˆ ๋‚ด์šฉ๋งŒ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฑฐ์ฃ .

๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ• ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋ฉด ์ด๋ ‡๋‹ต๋‹ˆ๋‹ค:

  1. DOM ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์—์„œ ์‹œ์ž‘ํ•ด ๊ฐ ๋…ธ๋“œ๋ฅผ ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค.
  2. ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ๋…ธ๋“œ๋งŒ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: display: none์ธ ์š”์†Œ๋Š” ์ œ์™ธ)
  3. ์„ ํƒ๋œ ๋…ธ๋“œ์— ์ ์ ˆํ•œ CSSOM ๊ทœ์น™์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ณ„์‚ฐ๋œ ์Šคํƒ€์ผ๊ณผ ํ•จ๊ป˜ ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋˜๊ฒ ๋„ค์š”:

๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ• ๊ณผ์ • DOM CSSOM ๋ Œ๋” ํŠธ๋ฆฌ

๐Ÿง  ๊ธฐ์–ตํ•˜์„ธ์š”: ๋ Œ๋” ํŠธ๋ฆฌ์—๋Š” ํ™”๋ฉด์— ์‹ค์ œ๋กœ ๊ทธ๋ ค์งˆ ์š”์†Œ๋งŒ ํฌํ•จ๋ผ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, <head> ์š”์†Œ๋‚˜ display: none ์Šคํƒ€์ผ์ด ์ ์šฉ๋œ ์š”์†Œ๋Š” ๋ Œ๋” ํŠธ๋ฆฌ์— ํฌํ•จ๋˜์ง€ ์•Š์•„์š”!

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ HTML๊ณผ CSS๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณผ๊นŒ์š”?


<!-- HTML -->
<body>
  <h1>์žฌ๋Šฅ๋„ท์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!</h1>
  <p style="display: none">์ด ํ…์ŠคํŠธ๋Š” ๋ณด์ด์ง€ ์•Š์•„์š”.</p>
  <div>
    <p>๋‹น์‹ ์˜ ์žฌ๋Šฅ์„ ๋‚˜๋ˆ„์„ธ์š”!</p>
  </div>
</body>

/* CSS */
body { font-family: Arial, sans-serif; }
h1 { color: #333; }
p { color: #666; }

์ด ๊ฒฝ์šฐ, ๋ Œ๋” ํŠธ๋ฆฌ๋Š” ๋Œ€๋žต ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋  ๊ฑฐ์˜ˆ์š”:

๋ Œ๋” ํŠธ๋ฆฌ ์˜ˆ์‹œ body h1 div p font-family: Arial, sans-serif color: #333 color: #666

๋ณด์ด์‹œ๋‚˜์š”? display: none ์Šคํƒ€์ผ์ด ์ ์šฉ๋œ p ์š”์†Œ๋Š” ๋ Œ๋” ํŠธ๋ฆฌ์— ํฌํ•จ๋˜์ง€ ์•Š์•˜์–ด์š”!

๋ Œ๋” ํŠธ๋ฆฌ๊ฐ€ ๊ตฌ์ถ•๋˜๋ฉด, ์ด์ œ ๊ฐ ๋…ธ๋“œ์˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฑฐ์˜ˆ์š”. ์ด ๊ณผ์ •์„ '๋ ˆ์ด์•„์›ƒ' ๋˜๋Š” '๋ฆฌํ”Œ๋กœ์šฐ'๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, ๋ฐ”๋กœ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ž์„ธํžˆ ์‚ดํŽด๋ณผ ๊ฑฐ์˜ˆ์š”!

๐Ÿ’ก ํ”„๋กœ ํŒ: ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•์„ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด:

  • CSS ์„ ํƒ์ž๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”.
  • ๋ถˆํ•„์š”ํ•œ DOM ๊นŠ์ด๋ฅผ ์ค„์ด์„ธ์š”.
  • JavaScript๋กœ DOM์„ ๋Œ€๊ทœ๋ชจ๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” DocumentFragment๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ž, ์ด์ œ ์šฐ๋ฆฌ์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๋Œ€๋žต์ ์œผ๋กœ ์•Œ๊ฒŒ ๋˜์—ˆ์–ด์š”. ํ•˜์ง€๋งŒ ์•„์ง ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋Š” ๋ชจ๋ฅด์ฃ ? ๊ทธ๋ž˜์„œ ๋‹ค์Œ ๋‹จ๊ณ„์ธ ๋ ˆ์ด์•„์›ƒ์ด ํ•„์š”ํ•œ ๊ฑฐ์˜ˆ์š”! ๊ณ„์†ํ•ด์„œ ๋”ฐ๋ผ์™€์ฃผ์„ธ์š”, ์šฐ๋ฆฌ์˜ ์—ฌ์ •์ด ์ ์  ๋” ํฅ๋ฏธ์ง„์ง„ํ•ด์ง€๊ณ  ์žˆ์–ด์š”! ๐Ÿš€

๐Ÿ“ 5๋‹จ๊ณ„: ๋ ˆ์ด์•„์›ƒ (Layout)

์ž, ์ด์ œ ์šฐ๋ฆฌ์˜ ์›น ํŽ˜์ด์ง€ ์š”์†Œ๋“ค์ด ์ •ํ™•ํžˆ ์–ด๋””์— ์œ„์น˜ํ•ด์•ผ ํ• ์ง€ ๊ฒฐ์ •ํ•  ์‹œ๊ฐ„์ด์—์š”! ์ด ๊ณผ์ •์„ '๋ ˆ์ด์•„์›ƒ' ๋˜๋Š” '๋ฆฌํ”Œ๋กœ์šฐ'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ต๋‹ˆ๋‹ค. ๐Ÿ—บ๏ธ

๋ ˆ์ด์•„์›ƒ ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ ์š”์†Œ์˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด์š”. ์ด ๊ณผ์ •์€ ๋ Œ๋” ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ด๋ค„์ ธ์š”.

๐Ÿงฎ ์•Œ์•„๋‘์„ธ์š”: ๋ ˆ์ด์•„์›ƒ ๊ณ„์‚ฐ์€ ์ƒ๋Œ€์ ์ธ ์ธก์ •๊ฐ’(%, em ๋“ฑ)์„ ์ ˆ๋Œ€์ ์ธ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ํฌํ•จํ•ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, width: 50%๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ๋„ˆ๋น„์— ๋”ฐ๋ผ ํ”ฝ์…€ ๊ฐ’์œผ๋กœ ๊ณ„์‚ฐ๋ผ์š”.

๋ ˆ์ด์•„์›ƒ ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋ฉด ์ด๋ ‡๋‹ต๋‹ˆ๋‹ค:

  1. ๋ถ€๋ชจ ์š”์†Œ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜ ๊ฒฐ์ •
  2. ์ž์‹ ์š”์†Œ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜ ๊ณ„์‚ฐ
  3. ์ด ๊ณผ์ •์„ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•ด ์žฌ๊ท€์ ์œผ๋กœ ๋ฐ˜๋ณต

์ด ๊ณผ์ •์„ ์‹œ๊ฐํ™”ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”:

๋ ˆ์ด์•„์›ƒ ๊ณผ์ • body (width: 500px, height: 200px) h1 (width: 460px, height: 50px) div (width: 220px, height: 60px) p (width: 220px, height: 60px)

์ด๋ ‡๊ฒŒ ๊ฐ ์š”์†Œ์˜ ์ •ํ™•ํ•œ ํฌ๊ธฐ์™€ ์œ„์น˜๊ฐ€ ๊ณ„์‚ฐ๋˜๋Š” ๊ฑฐ์˜ˆ์š”. ๋ฉ‹์ง€์ฃ ? ๐Ÿ˜Ž

ํ•˜์ง€๋งŒ ๋ ˆ์ด์•„์›ƒ ๊ณผ์ •์€ ๊ฝค ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ด์—์š”. ํŠนํžˆ DOM ์š”์†Œ๊ฐ€ ๋งŽ๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๊ฐ€์ง„ ํŽ˜์ด์ง€์—์„œ๋Š” ๋”์šฑ ๊ทธ๋ ‡์ฃ . ๊ทธ๋ž˜์„œ ๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•ด์š”!

๐Ÿš€ ์ตœ์ ํ™” ํŒ:

  • ๋ ˆ์ด์•„์›ƒ์„ ์ž์ฃผ ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์„ธ์š”. ์—ฌ๋Ÿฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•œ ๋ฒˆ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์•„์š”.
  • position: absolute๋‚˜ fixed๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์š”์†Œ๋Š” ๋‹ค๋ฅธ ์š”์†Œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์•„ ๋ ˆ์ด์•„์›ƒ ๊ณ„์‚ฐ์ด ๋” ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ์–ด์š”.
  • ๋ณต์žกํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ position: fixed๋‚˜ absolute๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์š”์†Œ์— ์ ์šฉํ•˜์„ธ์š”.
  • ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์†์„ฑ(width, height, top, left ๋“ฑ) ๋Œ€์‹  transform์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ž, ์ด์ œ ์šฐ๋ฆฌ ์›น ํŽ˜์ด์ง€์˜ ๊ฐ ์š”์†Œ๊ฐ€ ์–ด๋””์— ์œ„์น˜ํ•ด์•ผ ํ• ์ง€ ์ •ํ™•ํžˆ ์•Œ๊ฒŒ ๋˜์—ˆ์–ด์š”. ํ•˜์ง€๋งŒ ์•„์ง ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ทธ๋ ค์ง€์ง€๋Š” ์•Š์•˜์ฃ ? ๊ทธ๋ž˜์„œ ๋‹ค์Œ ๋‹จ๊ณ„์ธ 'ํŽ˜์ธํŠธ'๊ฐ€ ํ•„์š”ํ•œ ๊ฑฐ์˜ˆ์š”!

๋ ˆ์ด์•„์›ƒ ๋‹จ๊ณ„๋ฅผ ๋งˆ์น˜๊ณ  ๋‚˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด์ œ ๊ฐ ์š”์†Œ๋ฅผ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฑฐ์˜ˆ์š”. ์ด ๊ณผ์ •์ด ๋ฐ”๋กœ ๋‹ค์Œ์— ์‚ดํŽด๋ณผ 'ํŽ˜์ธํŠธ' ๋‹จ๊ณ„๋ž๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์—ฌ์ •์ด ๊ฑฐ์˜ ๋๋‚˜๊ฐ€๊ณ  ์žˆ์–ด์š”! ์กฐ๊ธˆ๋งŒ ๋” ํž˜๋‚ด์„ธ์š”! ๐ŸŽจ๐Ÿ–Œ๏ธ

๐ŸŽจ 6๋‹จ๊ณ„: ํŽ˜์ธํŠธ (Paint)

๋“œ๋””์–ด ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์— ๋„๋‹ฌํ–ˆ์–ด์š”! ๐ŸŽ‰ ์ด์ œ ์šฐ๋ฆฌ์˜ ์›น ํŽ˜์ด์ง€๋ฅผ ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ทธ๋ฆด ์‹œ๊ฐ„์ด์—์š”. ์ด ๊ณผ์ •์„ 'ํŽ˜์ธํŠธ' ๋˜๋Š” '๋ž˜์Šคํ„ฐํ™”'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ต๋‹ˆ๋‹ค.

ํŽ˜์ธํŠธ ๋‹จ๊ณ„์—์„œ๋Š” ๋ Œ๋” ํŠธ๋ฆฌ์˜ ๊ฐ ๋…ธ๋“œ๋ฅผ ํ™”๋ฉด์˜ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•ด์š”. ์ด ๊ณผ์ •์—๋Š” ํ…์ŠคํŠธ, ์ƒ‰, ์ด๋ฏธ์ง€, ํ…Œ๋‘๋ฆฌ, ๊ทธ๋ฆผ์ž ๋“ฑ ์š”์†Œ์˜ ๋ชจ๋“  ์‹œ๊ฐ์  ๋ถ€๋ถ„์„ ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์ด ํฌํ•จ๋ผ์š”.

๐Ÿ–Œ๏ธ ์•Œ์•„๋‘์„ธ์š”: ํŽ˜์ธํŠธ ๊ณผ์ •์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด์—์„œ ์ˆ˜ํ–‰๋ผ์š”. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋งŒ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋ฉด ๋˜๋Š” ๊ฒฝ์šฐ์— ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํŽ˜์ธํŠธ ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋ฉด ์ด๋ ‡๋‹ต๋‹ˆ๋‹ค:

  1. ๋ฐฐ๊ฒฝ์ƒ‰ ์น ํ•˜๊ธฐ
  2. ํ…์ŠคํŠธ ๊ทธ๋ฆฌ๊ธฐ
  3. ์ด๋ฏธ์ง€ ๊ทธ๋ฆฌ๊ธฐ
  4. ํ…Œ๋‘๋ฆฌ์™€ ๊ทธ๋ฆผ์ž ๋“ฑ ์ถ”๊ฐ€ ์žฅ์‹ ์š”์†Œ ๊ทธ๋ฆฌ๊ธฐ

์ด ๊ณผ์ •์„ ์‹œ๊ฐํ™”ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”:

ํŽ˜์ธํŠธ ๊ณผ์ • ์žฌ๋Šฅ๋„ท์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๋‹น์‹ ์˜ ์žฌ๋Šฅ์„ ๋‚˜๋ˆ„์„ธ์š”! ์žฌ๋Šฅ ๊ณต์œ ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ

์™€~ ๋“œ๋””์–ด ์šฐ๋ฆฌ์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ์‹ค์ œ๋กœ ๋ณด์ด๋Š” ๋ชจ์Šต์ด ์™„์„ฑ๋˜์—ˆ์–ด์š”! ๐ŸŽจโœจ

ํŽ˜์ธํŠธ ๊ณผ์ •๋„ ๊ฝค ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ด์—์š”. ํŠนํžˆ ํŽ˜์ด์ง€๊ฐ€ ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋”์šฑ ๊ทธ๋ ‡์ฃ . ๊ทธ๋ž˜์„œ ํŽ˜์ธํŠธ ์ตœ์ ํ™”๋„ ์ค‘์š”ํ•ด์š”!

๐Ÿš€ ์ตœ์ ํ™” ํŒ:

  • ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์€ ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋ ˆ์ด์–ด๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•ด์š”.
  • ์• ๋‹ˆ๋ฉ”์ด์…˜์—๋Š” transform๊ณผ opacity๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด ์†์„ฑ๋“ค์€ ์ƒˆ๋กœ์šด ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ค์–ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”.
  • ๋ณต์žกํ•œ ๊ทธ๋ฆผ์ž๋‚˜ ๊ทธ๋ผ๋ฐ์ด์…˜์€ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • will-change ์†์„ฑ์„ ์‚ฌ์šฉํ•ด ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณ€๊ฒฝ๋  ์š”์†Œ๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์–ด์š”. ํ•˜์ง€๋งŒ ๊ณผ๋„ํ•œ ์‚ฌ์šฉ์€ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•˜์„ธ์š”!

์ž, ์ด์ œ ์šฐ๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ป๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š”์ง€ ๋ชจ๋“  ๊ณผ์ •์„ ์‚ดํŽด๋ดค์–ด์š”. HTML์„ ํŒŒ์‹ฑํ•ด์„œ DOM์„ ๋งŒ๋“ค๊ณ , CSS๋ฅผ ํŒŒ์‹ฑํ•ด์„œ CSSOM์„ ๋งŒ๋“ค๊ณ , ์ด ๋‘˜์„ ํ•ฉ์ณ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ์ฃ . ๊ทธ๋ฆฌ๊ณ  ๋ ˆ์ด์•„์›ƒ์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ํŽ˜์ธํŠธ ๊ณผ์ •์„ ๊ฑฐ์ณ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ–ˆ์–ด์š”.

์ด ๋ชจ๋“  ๊ณผ์ •์ด ์šฐ๋ฆฌ๊ฐ€ URL์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅธ ํ›„ ๋ถˆ๊ณผ ๋ช‡ ์ดˆ ๋งŒ์— ์ผ์–ด๋‚œ๋‹ค๋Š” ๊ฒŒ ๋†€๋ž์ง€ ์•Š๋‚˜์š”? ํ˜„๋Œ€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋†€๋ผ์šด ๊ธฐ์ˆ ๋ ฅ์ด์—์š”! ๐Ÿ‘๐Ÿ‘๐Ÿ‘

์ด์ œ ์—ฌ๋Ÿฌ๋ถ„์€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •์„ ๊นŠ์ด ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ์–ด์š”. ์ด ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋” ํšจ์œจ์ ์ด๊ณ  ์„ฑ๋Šฅ ์ข‹์€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”. ์—ฌ๋Ÿฌ๋ถ„์˜ ์›น ๊ฐœ๋ฐœ ์—ฌ์ •์— ์ด ์ง€์‹์ด ํฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ผ์š”! ํ™”์ดํŒ…! ๐Ÿ’ช๐Ÿ˜Š

๐ŸŽ“ ๋งˆ๋ฌด๋ฆฌ: ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • ์ด์ •๋ฆฌ

์—ฌ๋Ÿฌ๋ถ„, ์ •๋ง ์ˆ˜๊ณ ํ•˜์…จ์–ด์š”! ๐Ÿ‘ ์šฐ๋ฆฌ๋Š” ๊ธด ์—ฌ์ •์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •์„ ์ƒ์„ธํžˆ ์‚ดํŽด๋ดค์–ด์š”. ์ด์ œ ์ „์ฒด ๊ณผ์ •์„ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด๋ณผ๊นŒ์š”?

  1. DOM ๊ตฌ์ถ•: HTML์„ ํŒŒ์‹ฑํ•ด์„œ DOM ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. CSSOM ๊ตฌ์ถ•: CSS๋ฅผ ํŒŒ์‹ฑํ•ด์„œ CSSOM์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. JavaScript ์‹คํ–‰: JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ DOM๊ณผ CSSOM์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•: DOM๊ณผ CSSOM์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  5. ๋ ˆ์ด์•„์›ƒ: ๊ฐ ์š”์†Œ์˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  6. ํŽ˜์ธํŠธ: ์‹ค์ œ ํ™”๋ฉด์˜ ํ”ฝ์…€๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์„ ์ดํ•ดํ•˜๋ฉด ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ํฐ ๋„์›€์ด ๋ผ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด:

  • CSS๋Š” ๋ Œ๋”๋ง ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค์ด๋ฏ€๋กœ, ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜๊ณ  ํŒŒ์‹ฑ๋˜๋„๋ก ์ตœ์ ํ™”ํ•ด์•ผ ํ•ด์š”.
  • JavaScript๋Š” ํŒŒ์„œ ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค์ด๋ฏ€๋กœ, ์ ์ ˆํžˆ ๋น„๋™๊ธฐ ๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ <body> ํƒœ๊ทธ ๋์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์•„์š”.
  • ๋ ˆ์ด์•„์›ƒ๊ณผ ๋ฆฌํŽ˜์ธํŠธ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ’ก Pro Tip: Chrome DevTools์˜ Performance ํƒญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ Œ๋”๋ง๋˜๋Š”์ง€ ์ž์„ธํžˆ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ฐพ์•„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค!

๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์›น ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ •๋ง ์ค‘์š”ํ•ด์š”. ์ด ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„์€ ๋” ๋น ๋ฅด๊ณ , ๋” ํšจ์œจ์ ์ด๋ฉฐ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋›ฐ์–ด๋‚œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”.

์—ฌ๋Ÿฌ๋ถ„์˜ ์›น ๊ฐœ๋ฐœ ์—ฌ์ •์— ์ด ์ง€์‹์ด ํฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ผ์š”. ํ•ญ์ƒ ํ•™์Šตํ•˜๊ณ , ์‹คํ—˜ํ•˜๊ณ , ๊ฐœ์„ ํ•˜์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฑด, ์ฝ”๋”ฉ์„ ์ฆ๊ธฐ๋Š” ๊ฑฐ์˜ˆ์š”! ํ™”์ดํŒ…! ๐Ÿš€๐Ÿ’ป๐Ÿ˜Š

๋Œ“๊ธ€ ์ž‘์„ฑ

์ด ๊ธ€์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์„ ๋“ค๋ ค์ฃผ์„ธ์š”

๋Œ“๊ธ€ 0
๋Œ“๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.

์•„์ง ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค.