DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง๊ณผ CRP ์™„์ „ ์ •๋ณต - [DOM ์™„์ „ ์ •๋ณต Part 3]

์ด ๊ฐ•์˜๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML์„ ๋ฐ›์•„ DOM์„ ๋งŒ๋“ค๊ณ , CSSOM๊ณผ ๊ฒฐํ•ฉํ•ด ํ™”๋ฉด์— ํ”ฝ์…€์„ ๊ทธ๋ ค๋‚ด๋Š” Critical Rendering Path(CRP) ๊ณผ์ •์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ DOM ์กฐ์ž‘์„ ๋„˜์–ด, CSS์™€ JS๊ฐ€ ์„ฑ๋Šฅ์— ์–ด๋–ค ์˜ํ–ฅ์„ ์ฃผ๋Š”์ง€, ์ด๋ฏธ์ง€ยทํฐํŠธ ์ตœ์ ํ™”, Lazy Loading, Intersection Observer, ๊ฐ€์ƒ ๋ฆฌ์ŠคํŠธ, ๊ทธ๋ฆฌ๊ณ  DevTools ์‹ค์Šต๊นŒ์ง€ ์ด์–ด์ง€๋ฉฐ ์‹ค์ œ ์›น ์„ฑ๋Šฅ์„ ๋ˆˆ์— ๋„๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ „ ์ „๋žต์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(5.0) ์ˆ˜๊ฐ•ํ‰ 7๊ฐœ

์ˆ˜๊ฐ•์ƒ 109๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
์›น๊ฐœ๋ฐœ
์›น๊ฐœ๋ฐœ
ํ”„๋ก ํŠธ์—”๋“œ
ํ”„๋ก ํŠธ์—”๋“œ
dom
dom
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
์›น๊ฐœ๋ฐœ
์›น๊ฐœ๋ฐœ
ํ”„๋ก ํŠธ์—”๋“œ
ํ”„๋ก ํŠธ์—”๋“œ
dom
dom
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
๊ฐ€๋น„์•„
์‚ฌ๋žŒ์ธ
๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ
์ž‰์นด์ธํ„ฐ๋„ท
CJ

CJ

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

๊ฐ€๋น„์•„
์‚ฌ๋žŒ์ธ
๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ
์ž‰์นด์ธํ„ฐ๋„ท
CJ

CJ

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

5.0

5.0

YU NA Joe

63% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

dev tools๋ฅผ ์ด์šฉํ•˜์—ฌ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์ž‡๋Š” ๋ฐฉ๋ฒ• ๊ณผ ๋ถ„์„์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

5.0

leo pug

30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์‚ฌ๋ž‘ํ•ด์š”

5.0

ํ˜ธ์šฐ

30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ž˜ ๋“ฃ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์ „ ๊ณผ์ •์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CSS์™€ JS ๋กœ๋”ฉ์ด ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์•Œ๊ณ  ์ตœ์ ํ™” ์ „๋žต์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CRP(Critical Rendering Path)๋ฅผ ๋ถ„์„ํ•ด ํ•ต์‹ฌ ์„ฑ๋Šฅ ์ง€ํ‘œ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • DevTools๋กœ ์‹ค์ œ ๋ Œ๋”๋ง ๋ณ‘๋ชฉ์„ ์ถ”์ ํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ˆ˜์ฒœ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ Virtual List๋กœ ๋น ๋ฅด๊ฒŒ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฏธ์ง€ยทํฐํŠธยทiframe์„ Lazy Loading์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Intersection Observer๋กœ ๋…ธ์ถœ ๊ฐ์ง€, ๋ฌดํ•œ ์Šคํฌ๋กค ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CRP, DOMContentLoaded ๊ฐ™์€ ๋ฉด์ ‘ ๋‹จ๊ณจ ๊ฐœ๋…์„ ์ž์‹  ์žˆ๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • SPA ํ”„๋ ˆ์ž„์›Œํฌ์—๋„ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์›๋ฆฌ๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์›น ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋А๋ฆฐ UI ๋ฌธ์ œ๋ฅผ ์›์ธ๋ถ€ํ„ฐ ํ•ด๊ฒฐ๊นŒ์ง€ ์ง์ ‘ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์„ ์ฝ”๋“œ๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ์›๋ฆฌ๋ฅผ ์ฒด๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • will-change, GPU ๊ฐ€์† ๋“ฑ ์ตœ์‹  CSS ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์‹ค์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์Šคํฌ๋ฆฝํŠธ ๋กœ๋”ฉ ์ „๋žต(async, defer, preload)์„ ์ƒํ™ฉ๋ณ„๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฏธ์…˜์„ ํ†ตํ•ด ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ž๊ธฐ ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง๊ณผ CRP ์™„์ „ ์ •๋ณต

๐Ÿš€ DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง์˜ ๋ชจ๋“  ์ˆœ๊ฐ„์„ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์ตœ์ ํ™”๊นŒ์ง€!
๐Ÿ–ผ
ํ™”๋ฉด์ด ๊ฐ‘์ž๊ธฐ ํ”๋“ค๋ฆฌ๊ณ (Layout Shift)
๐ŸŽจ
๋ฒ„ํŠผ ํ•˜๋‚˜๋งŒ ๋ฐ”๊ฟจ๋Š”๋ฐ ํŽ˜์ด์ง€ ์ „์ฒด๊ฐ€ ๋‹ค์‹œ ์น ํ•ด์ง€๊ณ (Paint),
โšก ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋งค๋„๋Ÿฝ์ง€ ์•Š๊ณ  ๋ฒ„๋ฒ…์ด๋Š” ์ˆœ๊ฐ„โ€ฆ

์ด๋Ÿฐ ํ˜„์ƒ์€ ์™œ ๋ฐœ์ƒํ• ๊นŒ์š”?
๊ทธ๋ฆฌ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋Š” ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์ณ HTML๊ณผ CSS๋ฅผ ํ™”๋ฉด ํ”ฝ์…€๋กœ ๋ฐ”๊พธ๋Š” ๊ฑธ๊นŒ์š”?

์ด ๊ฐ•์˜๋Š” ๋ฐ”๋กœ ๊ทธ ๋น„๋ฐ€, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ(CRP, Critical Rendering Path)์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด ์ตœ์ ํ™”๊นŒ์ง€ ์™„์ „ํžˆ ํŒŒํ—ค์นฉ๋‹ˆ๋‹ค.

DOM, CSSOM, Render Tree, Layout, Paint, Composite์ด๋ผ๋Š” ๋ Œ๋”๋ง์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ง์ ‘ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ , DevTools๋กœ ์‹ค์‹œ๊ฐ„ ์ถ”์ ํ•˜๋ฉฐ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ณผ์ • ์†์—์„œ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๋งŒ๋“œ๋Š” ์›๋ฆฌ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ตํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ โ€œ๋ Œ๋”๋ง์ด ์ด๋ ‡๊ฒŒ ์ผ์–ด๋‚œ๋‹คโ€๋Š” ์ด๋ก ์— ๊ทธ์น˜์ง€ ์•Š๊ณ , ์‹ค์ œ ๋А๋ ค์ง„ ํŽ˜์ด์ง€๋ฅผ ๋ถ„์„ยท์ตœ์ ํ™”ํ•˜๋Š” ์‹ค๋ฌด ์—ญ๋Ÿ‰๊นŒ์ง€ ๊ธฐ๋ฅผ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ Performance ํƒญ, Paint Flashing, FPS ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ™์€ ์‹œ๊ฐ์  ์ง„๋‹จ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•ด ๋ณ‘๋ชฉ์„ ๋ฐœ๊ฒฌํ•˜๊ณ , CLS(Layout Shift), Recalculate Style, Composite Layers ๋“ฑ ๊ตฌ๊ธ€์ด ์ค‘์š”ํ•˜๊ฒŒ ๋ณด๋Š” ์„ฑ๋Šฅ ์ง€ํ‘œ๊นŒ์ง€ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต ๋งˆ์ง€๋ง‰์—๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ DOM์„ ์ตœ์ ํ™”ํ•˜๋Š” Virtual List ๊ตฌํ˜„์„ ์ง์ ‘ ์‹ค์Šตํ•˜๋ฉฐ, ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด๋„ ๋Œ€๊ทœ๋ชจ UI๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ๋งˆ์น˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ DOM์„ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•˜๊ณ , ์–ด๋А ์ˆœ๊ฐ„ ์„ฑ๋Šฅ์ด ๋ฌด๋„ˆ์ง€๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ˆˆ์œผ๋กœ ๋ณด๊ณ  ์†์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ๊ฐ์ด ์ƒ๊น๋‹ˆ๋‹ค. React, Vue ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ฐ€๊ธฐ ์ „์—, ๊ทธ ๊ธฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” CRP๋ฅผ ์ดํ•ดํ•œ๋‹ค๋ฉด ํผํฌ๋จผ์Šค ์ตœ์ ํ™”์™€ ๋””๋ฒ„๊น…์€ ํ›จ์”ฌ ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๐ŸŽฏ ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ๋ง‰์—ฐํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

์ฝ”๋“œ๋ฅผ ์ค„์˜€๋Š”๋ฐ๋„ ํŽ˜์ด์ง€๊ฐ€ ๋А๋ฆฐ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€ ๋™์ž‘์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ถ”์ ํ•˜๋ฉด์„œ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงฑ UI๋ฅผ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ โ€˜์™œ ๋А๋ฆฐ์ง€โ€™ ์„ค๋ช… ๋ชปํ•˜๋Š” ํผ๋ธ”๋ฆฌ์…”/๋””์ž์ด๋„ˆ

์ฝ”๋“œ๋ฅผ ์ค„์˜€๋Š”๋ฐ๋„ ํŽ˜์ด์ง€๊ฐ€ ๋А๋ฆฐ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€ ๋™์ž‘์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ถ”์ ํ•˜๋ฉด์„œ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงฉ ๋Œ€๊ทœ๋ชจ DOM๊ณผ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์ž

Virtual List ๊ตฌํ˜„์„ ํ†ตํ•ด ์ˆ˜์ฒœ ๊ฐœ ์š”์†Œ๋„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋‹ค๋ฃจ๋Š” ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๊ฐ๊ฐ์„ ์ตํž™๋‹ˆ๋‹ค.

๐Ÿ’ป ์‹ค๋ฌด์—์„œ Core Web Vitals๋ฅผ ๊ฐœ์„ ํ•ด์•ผ ํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด

CLS, LCP ๊ฐ™์€ ๊ตฌ๊ธ€ ์„ฑ๋Šฅ ์ง€ํ‘œ์™€ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ์ตœ์ ํ™” ์ „๋žต์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” React/Vue๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ง€๊ณ  ์‹ถ์€ ํ•™์Šต์ž

Virtual DOM์ด๋‚˜ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ด ์™œ ํ•„์š”ํ•œ์ง€, ๊ทธ ๋ฐฐ๊ฒฝ์ด ๋˜๋Š” CRP์˜ ์›๋ฆฌ๋ฅผ ๋จผ์ € ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โšก ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋Š๊ธฐ๊ณ  FPS๊ฐ€ ๋–จ์–ด์ง€๋Š” ์ด์œ ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

Performance ํƒญ์œผ๋กœ ํ”„๋ ˆ์ž„ ๋‹จ์œ„๊นŒ์ง€ ๋ถ„์„ํ•˜๋ฉฐ GPU ์นœํ™”์ ์ธ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ฑ ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ ์„ฑ๋Šฅ ์ €ํ•˜์— ๊ณ ๋ฏผํ•˜๋Š” ๊ฐœ๋ฐœ์ž

์ €์‚ฌ์–‘ ๋””๋ฐ”์ด์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ ์…ฐํ”„ํŠธ, ์Šคํฌ๋กค ๋ฒ„๋ฒ…์ž„, ์ž…๋ ฅ ์ง€์—ฐ ๋ฌธ์ œ๋ฅผ DevTools์™€ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค๊ป˜ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒ ๊ฒ€์ƒ‰ ๋…ธ์ถœ๊ณผ SEO ์„ฑ๋Šฅ๊นŒ์ง€ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜๋Š” ๊ธฐํš์ž/๊ฐœ๋ฐœ์ž

Core Web Vitals ์ ์ˆ˜๊ฐ€ ๊ฒ€์ƒ‰ ๋žญํ‚น์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ดํ•ดํ•˜๊ณ , CLS/LCP/FID ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๊ณผ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ๋™์‹œ์— ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด ๊ฐ•์˜์˜ ํŠน์ง•

  1. 100% ์‹œ๊ฐ์  ํ•™์Šต
    ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์„ ์ฝ”๋“œ์™€ DevTools๋กœ ์ง์ ‘ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  2. ์ด๋ก ๊ณผ ์‹ค์Šต์˜ ๊ท ํ˜• ์žกํžŒ ํ•™์Šต
    ํ•ต์‹ฌ ๊ฐœ๋…์€ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•˜๊ณ , ๊ณง๋ฐ”๋กœ ์‹ค์Šต ์ฝ”๋“œ์™€ DevTools ๋ถ„์„์œผ๋กœ ๊ฒ€์ฆํ•˜๋ฉฐ ๊ท ํ˜•๊ฐ ์žˆ๊ฒŒ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  3. ์‹ค๋ฌดํ˜• ๋ฏธ์…˜ ํ›ˆ๋ จ
    CLS ์ตœ์ ํ™”, ๋Œ€์‹œ๋ณด๋“œ ๋ Œ๋”๋ง ์ง„๋‹จ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ/๊ฒฐ์ œ ํŽ˜์ด์ง€ ์ตœ์ ํ™” ๋“ฑ ํ˜„์—… ๋ฌธ์ œ๋ฅผ ๊ทธ๋Œ€๋กœ ์žฌํ˜„ํ•œ ํ”„๋กœ์ ํŠธ ๋ฏธ์…˜์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  4. ์›น ํ•ต์‹ฌ ์„ฑ๋Šฅ ์ง€ํ‘œ ์™„์ „ ์ •๋ณต
    CLS, LCP, FCP ๊ฐ™์€ Core Web Vitals๋ฅผ ์ง์ ‘ ์ธก์ •ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ์‹ค์Šต์œผ๋กœ, ๊ฒ€์ƒ‰ ๋…ธ์ถœ๊ณผ UX ๋ชจ๋‘ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ๋ Œ๋”๋ง ์„ฑ๋Šฅ ๋ถ„์„ ๋Šฅ๋ ฅ ๊ฐ•ํ™”
    Paint Flashing, FPS ๋ชจ๋‹ˆํ„ฐ๋ง, Layers ์‹œ๊ฐํ™” ๋“ฑ DevTools ์„ฑ๋Šฅ ๋„๊ตฌ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋‹ค๋ฃจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  6. ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ „๋žต ์ฒด๋“
    ๋ถˆํ•„์š”ํ•œ Layout/Paint ์ตœ์†Œํ™”, GPU ํ•ฉ์„ฑ ํ™œ์šฉ, Critical CSS ๋ถ„๋ฆฌ, async/defer ๋กœ๋”ฉ๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ํ›ˆ๋ จํ•ฉ๋‹ˆ๋‹ค.

  7. ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „ ํ•„์ˆ˜ ์ง€์‹
    React/Vue ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•˜๋Š” CRP์˜ ๋‚ด๋ถ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊นŠ์ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  8. ์‹ค์ „ UX ๊ฐœ์„  ๊ฒฝํ—˜
    ์•ˆ์ •์ ์ธ ๋ ˆ์ด์•„์›ƒ, ๋น ๋ฅธ ์ฒซ ๋ Œ๋”๋ง(LCP ๊ฐœ์„ ), 60fps ์• ๋‹ˆ๋ฉ”์ด์…˜ ์œ ์ง€ ๊ฐ™์€ ์‹ค์ œ UX ์ง€ํ‘œ ๊ฐœ์„ ์„ ์ง์ ‘ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค.

  9. ํ˜„์—…๊ณผ ์ง๊ฒฐ๋œ ํ”„๋กœ์ ํŠธ ๊ฐ๊ฐ
    ๋‹จ์ˆœ ์ฝ”๋“œ ์—ฐ์Šต์„ ๋„˜์–ด, ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์„ ์ง„๋‹จยทํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ฌด ๊ฐ๊ฐ์„ ํ‚ค์›๋‹ˆ๋‹ค.

๐ŸŽฏ ์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”

๐Ÿงฑ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ ์ง์ ‘ ๊ตฌํ˜„

HTMLยทCSS๊ฐ€ DOM/CSSOM โ†’ Render Tree โ†’ Layout โ†’ Paint โ†’ Composite์œผ๋กœ ์ด์–ด์ง€๋Š” ๊ณผ์ •์„ ์ฝ”๋“œ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” DevTools๋กœ DOM & CSSOM ๋ถ„์„

Elements / Computed ํƒญ์—์„œ DOM ๊ตฌ์กฐ์™€ ์ตœ์ข… ์Šคํƒ€์ผ, Box Model ๊ณ„์‚ฐ์„ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ˆ Performance ํƒญ์œผ๋กœ CRP ์ถ”์ 

Recalculate Style โ†’ Layout โ†’ Paint โ†’ Composite ์‹คํ–‰ ํ๋ฆ„๊ณผ LayerizeยทCommit ๊ณผ์ •์„ ํƒ€์ž„๋ผ์ธ์—์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ Layout Shift & CLS ์ตœ์ ํ™”

์˜ˆ์ƒ์น˜ ๋ชปํ•œ ํ™”๋ฉด ํ”๋“ค๋ฆผ์„ ์‹คํ—˜ํ•˜๊ณ , CLS ์ ์ˆ˜๋ฅผ ์ธก์ •ยท๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

๐ŸŽจ Paint Flashing & Layers ์‹œ๊ฐํ™”

๋ฐ˜๋ณต ํŽ˜์ธํŠธ๋˜๋Š” ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ , GPU ๋ ˆ์ด์–ด ๋ถ„๋ฆฌ๋ฅผ 3D๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

โšก FPS & ํ”„๋ ˆ์ž„ ์„ฑ๋Šฅ ๋ถ„์„

FPS์™€ ํ”„๋ ˆ์ž„ ํƒ€์ž„์„ ์ธก์ •ํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณ‘๋ชฉ ๊ตฌ๊ฐ„์„ ์ฐพ์•„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  ์‹ค๋ฌดํ˜• ์„ฑ๋Šฅ ์ตœ์ ํ™”

์˜ˆ์•ฝยท๊ฒฐ์ œยท๋Œ€์‹œ๋ณด๋“œ ๋“ฑ ์‚ฌ๋ก€๋กœ CLS ๊ฐœ์„ , Lazy Loading, Virtual List, Infinite Scroll ๊ธฐ๋ฒ•์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ ๋ Œ๋”๋ง ์ฐจ๋‹จ ์š”์†Œ ๊ฐœ์„ 

Critical CSS ์ถ”์ถœ, JS async/defer, preloadยทpreconnectยทprefetch๋กœ LCP/FCP๋ฅผ ์•ž๋‹น๊น๋‹ˆ๋‹ค.

๐Ÿ“‚ ๋ธŒ๋ผ์šฐ์ € ์ƒ๋ช…์ฃผ๊ธฐ ํ™œ์šฉ

DOMContentLoaded, load, beforeunload ์ด๋ฒคํŠธ ํƒ€์ด๋ฐ์„ ์ดํ•ดํ•˜๊ณ  UX ๋ณดํ˜ธยท์„ธ์…˜ ๋กœ๊น…์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ ์ „์ฒด CRP ์ตœ์ ํ™” ์ „๋žต ์ข…ํ•ฉ

DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์ „์ฒด ๋ Œ๋”๋ง ํ”Œ๋กœ์šฐ๋ฅผ ๊ด€ํ†ตํ•˜๋ฉฐ, ์„ฑ๋Šฅ ์ง€ํ‘œ์™€ ์ตœ์ ํ™” ํŒจํ„ด์„ ์ข…ํ•ฉ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ ์ด๋Ÿฐ ์‹ค๋ฌดํ˜• ๋ฏธ์…˜์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค

์ด๋ฒˆ [DOM ์™„์ „ ์ •๋ณต Part 3] ๊ฐ•์˜์—์„œ๋Š” ๋‹จ์ˆœํ•œ ์ฝ”๋“œ ์˜ˆ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹ค์ œ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์—์„œ ๋งˆ์ฃผ์น˜๋Š” ๋ฌธ์ œ ์ƒํ™ฉ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ ์‹ค๋ฌดํ˜• ๋ฏธ์…˜์„ ํ•ด๊ฒฐํ•ด๊ฐ€๋ฉฐ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.


โœ… Mission #1 โ€“ ์ œ๋ชฉ ์Šคํƒ€์ผ ๊ต์ • ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋””์ž์ด๋„ˆ ์‹œ์•ˆ๊ณผ ์–ด๊ธ‹๋‚œ UI ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฆ…๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: DevTools Elements/Styles ํŒจ๋„์„ ์ด์šฉํ•ด ์ œ๋ชฉ์˜ ์ž˜๋ชป๋œ CSS ์†์„ฑ์„ ๋ถ„์„ํ•˜๊ณ , ์‹œ์•ˆ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ค๋„๋ก ์Šคํƒ€์ผ์„ ๊ต์ •ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽจ Mission #2 โ€“ ํ”„๋กœ๋ชจ์…˜ ๊ฐ€๊ฒฉํ‘œ ๋ฆฌ๋””์ž์ธ ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์‚ฐ๋งŒํ•œ ๋ ˆ์ด์•„์›ƒ ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  UI๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: DevTools๋กœ ๋ถˆํ•„์š”ํ•œ ์Šคํƒ€์ผ ์ถฉ๋Œ์„ ์ถ”์ ํ•œ ๋’ค, ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ†ตํ•ด ๊ฐ€๊ฒฉํ‘œ ์„น์…˜์„ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์‹œ๊ฐ์  ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ Mission #3 โ€“ CLS ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋ ˆ์ด์•„์›ƒ ์…ฐํ”„ํŠธ ๋ฌธ์ œ๋ฅผ ์ˆ˜์น˜๋กœ ์ธก์ •ํ•˜๊ณ  ์•ˆ์ •์ ์ธ UI๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: Performance ํƒญ์—์„œ Layout Shift ์ด๋ฒคํŠธ๋ฅผ ์ถ”์ ํ•˜๊ณ  CLS ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ ๋’ค, ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์ง€์ •ยทํฐํŠธ ๋กœ๋”ฉ ์ „๋žต ๋“ฑ์„ ์ ์šฉํ•ด ํ”๋“ค๋ฆผ ์—†๋Š” ํŽ˜์ด์ง€๋ฅผ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Š Mission #4 โ€“ ๋Œ€์‹œ๋ณด๋“œ ๋ Œ๋”๋ง ๋ณ‘๋ชฉ ์ง„๋‹จ ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: KPI ์นด๋“œยทํ‘œยท๋ฏธ๋‹ˆ์ฐจํŠธ๊ฐ€ ๋งŽ์€ ๋Œ€์‹œ๋ณด๋“œ ์„ฑ๋Šฅ์„ ์ ๊ฒ€ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: Paint Flashing๊ณผ Layers ํƒญ์„ ํ™œ์šฉํ•ด ์žฆ์€ ๋ฆฌ๋ Œ๋”๋ง ๊ตฌ๊ฐ„์„ ์ฐพ์•„๋‚ด๊ณ , GPU ํ•ฉ์„ฑ(transform/opacity) ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”๋กœ ํ”„๋ ˆ์ž„ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงพ Mission #5 โ€“ ์˜ˆ์•ฝ/์˜์ˆ˜์ฆ UX ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์‹ค์ œ ์˜ˆ์•ฝ ๋ฐ ๊ฒฐ์ œ ์˜์ˆ˜์ฆ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: ์ตœ์ ํ™” ์ „ํ›„๋ฅผ Performance ํƒญ์œผ๋กœ ๋น„๊ตํ•˜๊ณ , ๋ถˆํ•„์š”ํ•œ Recalculate Style๊ณผ Paint๋ฅผ ์ค„์—ฌ ์˜ˆ์•ฝ/๊ฒฐ์ œ ํ”Œ๋กœ์šฐ๊ฐ€ ๋งค๋„๋Ÿฝ๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›’ Mission #6 โ€“ ์žฅ๋ฐ”๊ตฌ๋‹ˆ & ๊ฒฐ์ œ ํŽ˜์ด์ง€ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์ด์ปค๋จธ์Šค ํ•ต์‹ฌ ํ”Œ๋กœ์šฐ์—์„œ ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ƒํ’ˆ ์ถ”๊ฐ€/์‚ญ์ œ ์‹œ Layout ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๊ฒฐ์ œ ๋‹จ๊ณ„์—์„œ ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ์„ ์ตœ์ ํ™”ํ•ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋Š๊น€ ์—†์ด ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

โš™ Mission #7 โ€“ ๋ธŒ๋ผ์šฐ์ € ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋ธŒ๋ผ์šฐ์ € ์ดˆ๊ธฐํ™”์™€ ์„ธ์…˜ ๋กœ๊น…์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: DOMContentLoaded, load, beforeunload ๋“ฑ ์ด๋ฒคํŠธ ํƒ€์ด๋ฐ์„ ๋ถ„์„ํ•˜๊ณ , UX ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐ ๋กœ๊ทธ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฏ Mission #8 โ€“ Critical CSS ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์ดˆ๊ธฐ ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•˜๋Š” CSS ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: ํ•ต์‹ฌ Above-the-Fold ์˜์—ญ๋งŒ Critical CSS๋กœ ๋‚จ๊ธฐ๊ณ , ๋‚˜๋จธ์ง€๋Š” ์ง€์—ฐ ๋กœ๋”ฉ ๋ฐฉ์‹์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„๋ฅผ ํฌ๊ฒŒ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

โšก Mission #9 โ€“ JS async/defer ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: script ํƒœ๊ทธ์˜ ์‹คํ–‰ ์‹œ์ ์„ async, defer ์†์„ฑ์œผ๋กœ ์กฐ์ •ํ•ด ๋ธ”๋กœํ‚น ์—†์ด ํŽ˜์ด์ง€๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋˜๋„๋ก ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ Mission #10 โ€“ Preload & Prefetch ์ „๋žต ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: LCP๋ฅผ ์•ž๋‹น๊ธฐ๊ณ  ์ดˆ๊ธฐ ์ฒด๊ฐ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: preload, preconnect, prefetch๋ฅผ ํ™œ์šฉํ•ด ํ•ต์‹ฌ ์ด๋ฏธ์ง€ยทํฐํŠธยท๋ฆฌ์†Œ์Šค๋ฅผ ๋จผ์ € ๋ถˆ๋Ÿฌ์™€ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฌ Mission #11 โ€“ ๋ฏธ๋””์–ด ๋žœ๋”ฉ ํŽ˜์ด์ง€ ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋Œ€๊ทœ๋ชจ ์ด๋ฏธ์ง€ยท์˜์ƒ์ด ๋งŽ์€ ํŽ˜์ด์ง€์˜ ์ดˆ๊ธฐ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: Video ์ง€์—ฐ ๋กœ๋“œ, ์ด๋ฏธ์ง€ Lazy Loading์„ ์ ์šฉํ•ด LCP/FCP๋ฅผ ๋‹จ์ถ•ํ•˜๊ณ  ์ฒด๊ฐ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๐Ÿ“ฑ Mission #12 โ€“ ์‹ ์ƒํ’ˆ ํ”ผ๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ํ”ผ๋“œ์—์„œ๋„ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: Virtual List์™€ Infinite Scroll์„ ๊ตฌํ˜„ํ•˜๊ณ , ๋ฏธ๋””์–ด/์Šคํฌ๋ฆฝํŠธ Lazy Loading์„ ๊ฒฐํ•ฉํ•ด ๋น ๋ฅธ UX๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • HTML/CSS ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•์„ ์•Œ๊ณ  ๊ณ„์‹œ๋ฉด ์›ํ™œํ•˜๊ฒŒ ๋”ฐ๋ผ์˜ค์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠนํžˆ addEventListener, if/else, forEach, ๊ฐ์ฒด ์ ‘๊ทผ ๋ฐฉ์‹ ์ •๋„๋Š” ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • Mac/Windows ํ™˜๊ฒฝ ๋ชจ๋‘ ์ˆ˜๊ฐ• ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ณ„๋„์˜ ์„ค์น˜ ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €๋งŒ ์žˆ์œผ๋ฉด ์‹ค์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ตœ์‹  ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • (์„ ํƒ) Part 1: [DOM ์™„์ „ ์ •๋ณต Part 1] โ€“ ๊ตฌ์กฐ ํƒ์ƒ‰๊ณผ ์กฐ์ž‘์˜ ๋ชจ๋“  ๊ฒƒ


  • (์„ ํƒ) Part 2: [DOM ์™„์ „ ์ •๋ณต Part 2] โ€“ ์ด๋ฒคํŠธ๋ถ€ํ„ฐ SPA๊นŒ์ง€, ์ƒํ˜ธ์ž‘์šฉ ์›น์˜ ํ•„์ˆ˜ ์—”์ง„


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋น ๋ฅธ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํ”„๋ก ํŠธ์—”๋“œ ์ž…๋ฌธ์ž

  • ๋А๋ฆฐ ํŽ˜์ด์ง€ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์ดํƒˆ์„ ์ค„์ด๊ณ  ์‹ถ์€ ์Šคํƒ€ํŠธ์—… ๊ฐœ๋ฐœ์ž

  • ํฌํŠธํด๋ฆฌ์˜ค์— โ€œ์„ฑ๋Šฅ ์ตœ์ ํ™” ํ”„๋กœ์ ํŠธโ€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์ทจ์—… ์ค€๋น„์ƒ

  • ์ด๋ฏธ์ง€, ํฐํŠธ, ์˜์ƒ ๋•Œ๋ฌธ์— ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋А๋ ค ๊ณ ๋ฏผ์ธ ๋””์ž์ด๋„ˆ ๊ฒธ ๊ฐœ๋ฐœ์ž

  • React, Vue ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋งŽ์•„ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ ธ ๋ณธ ์  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž

  • โ€œasync, deferโ€ ๊ฐ™์€ ์†์„ฑ์ด ํ—ท๊ฐˆ๋ ธ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•™์Šต์ž

  • ์‹ค์ œ ์„œ๋น„์Šค์—์„œ Core Web Vitals ์ ์ˆ˜๋ฅผ ๊ฐœ์„ ํ•ด์•ผ ํ•˜๋Š” ์›น ํผ๋ธ”๋ฆฌ์…”

  • ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋กœ ์„ฑ๋Šฅ ๋ถ„์„์€ ํ•ด๋ดค์ง€๋งŒ ์–ด๋””๋ฅผ ๊ณ ์ณ์•ผ ํ• ์ง€ ๋ง‰๋ง‰ํ–ˆ๋˜ ๋ถ„

  • SPA ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ์—์„œ ์Šคํฌ๋กค, ๋ Œ๋”๋ง ์ตœ์ ํ™”์— ๊ด€์‹ฌ ์žˆ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์ฃผ๋‹ˆ์–ด

  • โ€œ์™œ ๋‚ด ์›น์€ ๋А๋ฆด๊นŒ?โ€๋ผ๋Š” ์˜๋ฌธ์„ ๋๊นŒ์ง€ ํŒŒ๊ณ ๋“ค๊ณ  ์‹ถ์€ ์—ด์ •์ ์ธ ํ•™์Šต์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • HTML/CSS ๊ธฐ์ดˆ ํƒœ๊ทธ์™€ DOM ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ดํ•ด

  • JavaScript ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

  • querySelector ๋ฐ DOM ์š”์†Œ ์„ ํƒ/์กฐ์ž‘ ๊ฒฝํ—˜

  • (์„ ํƒ) [DOM ์™„์ „ ์ •๋ณต Part 1] โ€“ ๊ตฌ์กฐ ํƒ์ƒ‰๊ณผ ์กฐ์ž‘์˜ ๋ชจ๋“  ๊ฒƒ

  • (์„ ํƒ) [DOM ์™„์ „ ์ •๋ณต Part 2] โ€“ ์ด๋ฒคํŠธ๋ถ€ํ„ฐ SPA๊นŒ์ง€, ์ƒํ˜ธ์ž‘์šฉ ์›น์˜ ํ•„์ˆ˜ ์—”์ง„

์•ˆ๋…•ํ•˜์„ธ์š”
nhcodingstudio์ž…๋‹ˆ๋‹ค.

1,937

๋ช…

์ˆ˜๊ฐ•์ƒ

115

๊ฐœ

์ˆ˜๊ฐ•ํ‰

43

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

18

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”, ์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค๋Š” ์นด๋„ค๊ธฐ ๋ฉœ๋ก , ์›Œ์‹ฑํ„ด, ํ† ๋ก ํ† , ์›Œํ„ฐ๋ฃจ ๋“ฑ ๋ถ๋ฏธ์˜ ์ฃผ์š” ๋Œ€ํ•™์—์„œ ์ปดํ“จํ„ฐ๊ณตํ•™์„ ์ „๊ณตํ•˜๊ณ , Google, Microsoft, Meta ๋“ฑ ๊ธ€๋กœ๋ฒŒ IT ๊ธฐ์—…์—์„œ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ์Œ“์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•จ๊ป˜ ๋งŒ๋“  ๊ต์œก ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

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

โ€œ์šฐ๋ฆฌ๊ฐ€ ๊ณต๋ถ€ํ•˜๋˜ ์ด ๋ฐฉ์‹, ๊ทธ๋Œ€๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋„ ์ „ํ•˜๋ฉด ์–ด๋–จ๊นŒ?โ€

๊ทธ ๋ฌผ์Œ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค์˜ ์ถœ๋ฐœ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š” ์•ฝ 30๋ช…์˜ ํ˜„์ง ๊ฐœ๋ฐœ์ž์™€ ์ปดํ“จํ„ฐ๊ณตํ•™ ์ „๊ณต ๋Œ€ํ•™์ƒ๋“ค์ด ๊ฐ์ž์˜ ์ „๋ฌธ ๋ถ„์•ผ๋ฅผ ๋งก์•„, ์ž…๋ฌธ๋ถ€ํ„ฐ ์‹ค์ „๊นŒ์ง€ ์•„์šฐ๋ฅด๋Š” ์ปค๋ฆฌํ˜๋Ÿผ์„ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐ•์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ง€์‹ ์ „๋‹ฌ์„ ๋„˜์–ด, ์ง„์งœ ๊ฐœ๋ฐœ์ž์˜ ์‹œ์„ ์œผ๋กœ ๋ฐฐ์šฐ๊ณ  ํ•จ๊ป˜ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โ€œ์ง„์งœ ๊ฐœ๋ฐœ์ž๋Š”, ์ง„์งœ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.โ€

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

๐ŸŽฏ ์šฐ๋ฆฌ์˜ ์ฒ ํ•™์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.
"์ง„์ •ํ•œ ๋ฐฐ์›€์€ ์‹ค์ฒœ์—์„œ ์˜ค๊ณ , ์„ฑ์žฅ์€ ํ•จ๊ป˜ํ•  ๋•Œ ์™„์„ฑ๋œ๋‹ค."

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

์ด์ œ, ํ˜ผ์ž ๊ณ ๋ฏผํ•˜์ง€ ๋งˆ์„ธ์š”.
์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์„ฑ์žฅ์„ ํ•จ๊ป˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


Welcome to Neighborhood Coding Studio!

Neighborhood Coding Studio was founded by a team of developers who studied computer science at top North American universities such as Carnegie Mellon, the University of Washington, the University of Toronto, and the University of Waterloo, and went on to gain hands-on experience at global tech companies like Google, Microsoft, and Meta.

It all began as a study group formed by computer science students across the U.S. and Canada, created to grow together by sharing knowledge, solving problems, and learning from one another.
Though we were attending different schools in different time zones, the experience was so meaningful that it led us to one simple thought:

โ€œWhat if we shared this way of learning with others?โ€

That thought became the foundation of Neighborhood Coding Studio.

Today, we are a team of around 30 active developers and computer science students, each taking responsibility for their area of expertiseโ€”designing and delivering a curriculum that spans from foundational knowledge to real-world development.
Weโ€™re not just here to teachโ€”weโ€™re here to help you see through the lens of real developers and grow together.

โ€œTo become a real developer, you must learn from real developers.โ€

Our courses take you through the entire web development journeyโ€”from start to finishโ€”focused on hands-on practice, real-world projects, and practical feedback.
We care deeply about each learnerโ€™s growth and are committed to supporting your path every step of the way.

๐ŸŽฏ Our philosophy is simple but powerful:
"True learning comes from doing, and true growth happens together."

Whether you're just getting started, preparing for your first job, or exploring your future in tech,
Neighborhood Coding Studio is here to be your launchpadโ€”and your trusted companion on the journey.

You donโ€™t have to do it alone.
Let Neighborhood Coding Studio walk with you toward your future in development.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

42๊ฐœ โˆ™ (2์‹œ๊ฐ„ 15๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

7๊ฐœ

5.0

7๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์ •์ˆ˜์ง€๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์ •์ˆ˜์ง€

    ์ˆ˜๊ฐ•ํ‰ 5

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    83% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๊ฐ•์˜ ์ œ๋ชฉ ๊ทธ๋Œ€๋กœ DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง๊ณผ CRP์— ๋Œ€ํ•ด ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ๊ณ , ์•„์ง ์ง„ํ–‰ํ•ด๋ณด์ง„ ์•Š์•˜์ง€๋งŒ ์‹ค์ „ ๊ณผ์ œ๋กœ ์‹ค๋ฌด์—์„œ ๋งˆ์ฃผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•๊นŒ์ง€ ๋‚˜์•„๊ฐ€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒŒ ๋„ˆ๋ฌด ์ข‹์Šต๋‹ˆ๋‹ค! ์งˆ๋ฌธ์—๋„ ๋งค์šฐ ์ž์„ธํžˆ ๋‹ต๋ณ€ํ•ด์ฃผ์…”์„œ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ๊ฐ•์˜์ž…๋‹ˆ๋‹ค!

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” ์ •์ˆ˜์ง€๋‹˜ ๐Ÿ˜Š ์ด๋ ‡๊ฒŒ ๋”ฐ๋œปํ•œ ๋ง์”€ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ •๋ง ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ™ DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€ ์ด์–ด์ง€๋Š” ๋ Œ๋”๋ง ๊ณผ์ •๊ณผ CRP์˜ ํ๋ฆ„์„ ํฅ๋ฏธ๋กญ๊ฒŒ ๋ด์ฃผ์…จ๋‹ค๋‹ˆ ์ •๋ง ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋ง์”€ํ•ด์ฃผ์‹  ๊ฒƒ์ฒ˜๋Ÿผ ์ด ๊ฐ•์˜๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๋งŒ๋“ค์–ด ๊ฐ€๋Š” ์ „ ๊ณผ์ •์„ ๊ตฌ์กฐ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ , ๋‚˜์•„๊ฐ€ ์‹ค๋ฌด์—์„œ ๋งˆ์ฃผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์˜๋„๊ฐ€ ์ž˜ ์ „๋‹ฌ๋˜์—ˆ๋‹ค๋‹ˆ ๋ณด๋žŒ์„ ๋А๋‚๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‘์›์˜ ๋ง์”€๋“ค์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์ •๋ง ํฐ ์›๋™๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๊พธ์ค€ํžˆ ์—ฐ๊ตฌํ•˜๊ณ  ๋ฐœ์ „ํ•ด์„œ, ๋”์šฑ ๊นŠ์ด ์žˆ๊ณ  ์‹ค์งˆ์ ์œผ๋กœ ๋„์›€์ด ๋˜๋Š” ์ฝ˜ํ…์ธ ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” React ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋น„๋กฏํ•ด, ๋ Œ๋”๋ง ์ดํ›„์˜ ๋™์ž‘ ์›๋ฆฌ์™€ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ์ ์šฉ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์ƒˆ๋กœ์šด ๊ฐ•์˜๋“ค๋„ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ค์œผ์‹œ๋‹ค๊ฐ€ ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ๋” ์•Œ๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ด ์ƒ๊ธฐ๋ฉด ์–ธ์ œ๋“  ํŽธํ•˜๊ฒŒ ๋ง์”€ ์ฃผ์„ธ์š”. ์ž‘์€ ์งˆ๋ฌธ์ด๋ผ๋„ ํ•จ๊ป˜ ์ด์•ผ๊ธฐ ๋‚˜๋ˆ„๋ฉด์„œ ๋” ๋‚˜์€ ํ•™์Šต ๊ฒฝํ—˜์„ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ’ฌ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์†Œ์ค‘ํ•œ ํ”ผ๋“œ๋ฐฑ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ์•ž์œผ๋กœ๋„ ๊พธ์ค€ํžˆ ์„ฑ์žฅํ•˜๋Š” ๋ชจ์Šต์œผ๋กœ ๋ณด๋‹ต๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ํ–‰๋ณตํ•œ ํ•˜๋ฃจ ๋˜์„ธ์š”! ๐ŸŒฟ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋„ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค๊ณผ ํ•จ๊ป˜ ์–˜๊ธฐ ๋‚˜๋ˆ„๊ณ  ์žˆ์œผ๋‹ˆ, ์‹œ๊ฐ„ ๋˜์‹ค ๋•Œ ๊ฐ€๋ณ๊ฒŒ ๋“ค๋Ÿฌ์ฃผ์„ธ์š”. ๐Ÿ‘‰ https://open.kakao.com/o/gC10Fnoh

  • leo pug๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    leo pug

    ์ˆ˜๊ฐ•ํ‰ 8

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์‚ฌ๋ž‘ํ•ด์š”

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” leo pug ๋‹˜! ์ €๋„ ์‚ฌ๋ž‘ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜Š๐Ÿ˜Š ์ด๋ ‡๊ฒŒ ์ง๊ด€์ ์ด๊ณ  ์—ด์ •์ ์ธ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ •๋ง ๊ธฐ๋ถ„์ด ์ข‹์•„์ง€๋„ค์š”. [DOM ์™„์ „ ์ •๋ณต Part 3] ๊ฐ•์˜๊ฐ€ ๋‹˜์—๊ฒŒ ๊ทธ๋งŒํผ ํฐ ๋งŒ์กฑ์„ ๋“œ๋ฆฐ ๊ฒƒ ๊ฐ™์•„ ์ œ์ž‘์ž๋กœ์„œ ๋”ํ•  ๋‚˜์œ„ ์—†์ด ๋ณด๋žŒ์„ ๋А๋‚๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ๊ทธ ๋ณต์žกํ•œ ๊ณผ์ •์„ ํ•จ๊ป˜ ์ •๋ณตํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ด์š”! ์ด ๋„˜์น˜๋Š” ์—๋„ˆ์ง€ ๊ทธ๋Œ€๋กœ ์ด์–ด๊ฐ€์‹ค ์ˆ˜ ์žˆ๋„๋ก, ์•ž์œผ๋กœ๋„ ๋” ๊นŠ์ด ์žˆ๊ณ  ์ง„์‹ฌ์ด ๋‹ด๊ธด ๊ฐ•์˜๋“ค๋กœ ๋ณด๋‹ตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๋ฆฌ์•กํŠธ(React) ์‹œ๋ฆฌ์ฆˆ๋„ ๋‹˜์˜ ๊ฐœ๋ฐœ ์—ฌ์ •์— ํฐ ์‚ฌ๋ž‘์ด ๋˜์–ด๋“œ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ์ตœ์„ ์„ ๋‹คํ•ด ์ค€๋น„ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ๋งŽ์€ ๊ธฐ๋Œ€ ๋ถ€ํƒ๋“œ๋ ค์š”! ํ•™์Šตํ•˜์‹œ๋‹ค ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ธฐ๊ฑฐ๋‚˜ ์ž๋ž‘ํ•˜๊ณ  ์‹ถ์€ ์„ฑ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์ด๋‚˜ ๊ฒŒ์‹œํŒ์— ๋“ค๋Ÿฌ์ฃผ์„ธ์š”. ๋‹˜์˜ ์•ž๋‚ ์„ ์–ธ์ œ๋‚˜ ๋œจ๊ฒ๊ฒŒ ์‘์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ํ–‰๋ณต ๊ฐ€๋“ํ•œ ํ•˜๋ฃจ ๋˜์„ธ์š”! ๐ŸŒฟ๐Ÿ”ฅ ๐Ÿ‘‰ https://open.kakao.com/o/gC10Fnoh

  • ํ˜ธ์šฐ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ํ˜ธ์šฐ

    ์ˆ˜๊ฐ•ํ‰ 11

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ž˜ ๋“ฃ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” howu ๋‹˜ ๐Ÿ˜Š ์ด๋ ‡๊ฒŒ ๋”ฐ๋œปํ•œ ์ˆ˜๊ฐ•ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ™ ๊ฐ•์˜๋ฅผ ์ฆ๊ฒ๊ฒŒ ๋“ค์–ด์ฃผ์‹ ๋‹ค๋‹ˆ ์ •๋ง ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ๋‹จ์ˆœํžˆ ์ด๋ก ์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์„ ๋„˜์–ด, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ DOM์„ ํ†ตํ•ด ํ™”๋ฉด์„ ๋งŒ๋“ค์–ด ๊ฐ€๋Š” ๊ณผ์ •์„ ๋ˆˆ์œผ๋กœ ์ง์ ‘ ํ™•์ธํ•˜๊ณ , ์‹ค๋ฌด์—์„œ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ๊ฐ์„ ๊ธฐ๋ฅด๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋ถ€๋ถ„์ด ํฅ๋ฏธ๋กญ๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค๋ฉด ์ •๋ง ๋ณด๋žŒ์„ ๋А๋‚๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‘์›์˜ ๋ง์”€ ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ€๋Š” ๋ฐ ํฐ ์›๋™๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๋”์šฑ ๊นŠ์ด ์žˆ๊ณ  ์‹ค์งˆ์ ์ธ ๋‚ด์šฉ์„ ๋‹ด์€ ๊ฐ•์˜๋กœ ๋ณด๋‹ต๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆ˜๊ฐ• ์ค‘ ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ๋” ์•Œ๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ด ์ƒ๊ธฐ๋ฉด ์–ธ์ œ๋“  ํŽธํ•˜๊ฒŒ ๋ง์”€ ์ฃผ์„ธ์š”. ๐Ÿ’ฌ ์ž‘์€ ์งˆ๋ฌธ์ด๋ผ๋„ ํ•จ๊ป˜ ์ด์•ผ๊ธฐ ๋‚˜๋ˆ„๋ฉฐ ๋” ์ข‹์€ ํ•™์Šต ๊ฒฝํ—˜์„ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ์†Œ์ค‘ํ•œ ์‘์› ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ์˜ค๋Š˜๋„ ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”! ๐ŸŒฟ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋„ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค๊ณผ ํ•จ๊ป˜ ์ด์•ผ๊ธฐ ๋‚˜๋ˆ„๊ณ  ์žˆ์œผ๋‹ˆ, ์‹œ๊ฐ„ ๋˜์‹ค ๋•Œ ๊ฐ€๋ณ๊ฒŒ ๋“ค๋Ÿฌ์ฃผ์„ธ์š”. ๐Ÿ‘‰ https://open.kakao.com/o/gC10Fnoh

  • YU NA Joe๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    YU NA Joe

    ์ˆ˜๊ฐ•ํ‰ 4

    โˆ™

    ํ‰๊ท  ํ‰์  4.3

    5

    63% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    dev tools๋ฅผ ์ด์šฉํ•˜์—ฌ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์ž‡๋Š” ๋ฐฉ๋ฒ• ๊ณผ ๋ถ„์„์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” YU NA Joe ๋‹˜! ๐Ÿ˜Š ์†Œ์ค‘ํ•œ ์ˆ˜๊ฐ•ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ™ ์ด๋ฒˆ [DOM ์™„์ „ ์ •๋ณต Part 3] ๊ฐ•์˜์—์„œ ๋‹ค๋ฃฌ DevTools ํ™œ์šฉ๋ฒ•๊ณผ ๋ถ„์„ ๊ณผ์ •์ด ๋„์›€์ด ๋˜์…จ๋‹ค๋‹ˆ ์ •๋ง ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์ด๋ก ์œผ๋กœ๋งŒ ๋๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ธŒ๋ผ์šฐ์ €์˜ ์„ฑ๋Šฅ์„ ์ง์ ‘ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์›์ธ์„ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์ด์•ผ๋ง๋กœ ์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ํ•„์š”ํ•œ ๊ฐ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์žฌ๋ฏธ์™€ ์œ ์ตํ•จ์„ ์•Œ์•„๋ด ์ฃผ์…”์„œ ์ œ์ž‘์ž๋กœ์„œ ํฐ ๋ณด๋žŒ์„ ๋А๋‚๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์›๋ฆฌ์™€ ๋ถ„์„์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์‹œ๋Š” ๋งŒํผ, ํ˜„์žฌ ์ถœ์‹œ๋œ [์ œ๋Œ€๋กœ ๋ฐฐ์šฐ๋Š” React Part 1]์ด๋‚˜ ๊ณง ์ถœ์‹œ๋  [React Part 2]์—์„œ๋„ ๋ฆฌ์•กํŠธ๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ Œ๋”๋ง์„ ์ตœ์ ํ™”ํ•˜๋Š”์ง€ ๋ถ„์„ํ•˜๋Š” ์•ˆ๋ชฉ์„ ํ‚ค์šฐ์‹ค ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”. ํ•™์Šตํ•˜์‹œ๋‹ค๊ฐ€ ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ธฐ๋ฉด ์–ธ์ œ๋“  ํŽธํ•˜๊ฒŒ ์งˆ๋ฌธ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๐Ÿ’ฌ ์•ž์œผ๋กœ๋„ ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊นŠ์ด ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋กœ ๋ณด๋‹ตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”! ๐ŸŒฟ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋„ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค๊ณผ ์†Œํ†ต ์ค‘์ด๋‹ˆ, ์‹œ๊ฐ„ ๋˜์‹ค ๋•Œ ๋“ค๋Ÿฌ์ฃผ์„ธ์š”. ๐Ÿ‘‰ https://open.kakao.com/o/gC10Fnoh

  • rlaqhguse๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    rlaqhguse

    ์ˆ˜๊ฐ•ํ‰ 3

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    33% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š”, rlaqhguse๋‹˜. ์ง€์‹๊ณต์œ ์ž์ž…๋‹ˆ๋‹ค. ์šฐ์„  <DOM์—์„œ ํ”ฝ์…€๊นŒ์ง€, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง๊ณผ CRP ์™„์ „ ์ •๋ณต - [DOM ์™„์ „ ์ •๋ณต Part 3]> ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด ์ฃผ์‹œ๊ณ , ์ด๋ ‡๊ฒŒ ์†Œ์ค‘ํ•œ ์ˆ˜๊ฐ•ํ‰์„ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. rlaqhguse๋‹˜๊ป˜์„œ ๋‚จ๊ฒจ์ฃผ์‹  ์†Œ์ค‘ํ•œ ํ”ผ๋“œ๋ฐฑ์€ ์ €์—๊ฒŒ ์ •๋ง ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •๊ณผ CRP(Critical Rendering Path)๋Š” ์›น ํผํฌ๋จผ์Šค ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ์ธ ๋งŒํผ, ์ด๋ฒˆ ๊ฐ•์˜๊ฐ€ rlaqhguse๋‹˜๊ป˜์„œ ๋” ๊นŠ์ด ์žˆ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•˜์‹œ๋Š” ๋ฐ ์‹ค์งˆ์ ์ธ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค. rlaqhguse๋‹˜์˜ ์—ด์ •์ ์ธ ํ•™์Šต์„ ์‘์›ํ•˜๋Š” ๋งˆ์Œ์„ ๋‹ด์•„ ์ž‘์€ ํ˜œํƒ์„ ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ €ํฌ ๊ต์œก ๊ณผ์ • ์ค‘ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜๊ฐ•์„ ํฌ๋งํ•˜์‹œ๋Š” ๊ฐ•์˜๊ฐ€ ์žˆ์œผ์‹œ๋‹ค๋ฉด, ์•„๋ž˜ ์ด๋ฉ”์ผ๋กœ ํŽธํ•˜๊ฒŒ ์—ฐ๋ฝํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ํ™•์ธ ํ›„ ์ฆ‰์‹œ ํ• ์ธ ์ฟ ํฐ์„ ์ „๋‹ฌํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ์˜ ์ด๋ฉ”์ผ: jeony0535@naver.com ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ท€ํ•œ ์‹œ๊ฐ„ ๋‚ด์–ด ๋”ฐ๋œปํ•œ ๋ง์”€ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. rlaqhguse๋‹˜์˜ ์„ฑ์žฅ์„ ์ง„์‹ฌ์œผ๋กœ ์‘์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :D

nhcodingstudio๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!