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

์ด ๊ฐ•์˜๋Š” ๋‹จ์ˆœํ•œ DOM ์กฐ์ž‘์„ ๋„˜์–ด์„œ, ์‹ค์ œ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ์†์—์„œ ์›น UI๋ฅผ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐ˜์‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊นŠ์ด ์žˆ๊ฒŒ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์˜ ๋ณธ์งˆ, ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ฒ˜๋ง, ์ด๋ฒคํŠธ ์œ„์ž„, ์‹ค์‹œ๊ฐ„ UX ํ”ผ๋“œ๋ฐฑ, ๊ทธ๋ฆฌ๊ณ  throttle & debounce๋ฅผ ํ™œ์šฉํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊นŒ์ง€, ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ๋ฌธ์ œ๋“ค์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ ์ตํž ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. DOM ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ์ด๋ฒคํŠธ ํ๋ฆ„๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ์„ ์œ ์—ฐํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

(4.7) ์ˆ˜๊ฐ•ํ‰ 6๊ฐœ

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

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

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

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
์›น๊ฐœ๋ฐœ
์›น๊ฐœ๋ฐœ
ํ’€์Šคํƒ
ํ’€์Šคํƒ
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์‹œ๊ฐํ™”
์‹œ๊ฐํ™”
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
์›น๊ฐœ๋ฐœ
์›น๊ฐœ๋ฐœ
ํ’€์Šคํƒ
ํ’€์Šคํƒ
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์‹œ๊ฐํ™”
์‹œ๊ฐํ™”

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

  • addEventListener์™€ removeEventListener์˜ ์‹ค๋ฌด์  ์‚ฌ์šฉ๋ฒ•

  • ์ด๋ฒคํŠธ ํ๋ฆ„: ์บก์ฒ˜ โ†’ ํƒ€๊ฒŸ โ†’ ๋ฒ„๋ธ”๋ง ๊ตฌ์กฐ์˜ ์™„์ „ ์ดํ•ด

  • event.target, currentTarget, this์˜ ์ฐจ์ด์ ๊ณผ ํ™œ์šฉ

  • preventDefault, stopPropagation์˜ ์‹ค์ œ ๋™์ž‘ ๋ฐฉ์‹

  • ์ด๋ฒคํŠธ ์œ„์ž„(event delegation)์œผ๋กœ ๋™์  ์š”์†Œ ํšจ์œจ ์ฒ˜๋ฆฌ

  • ์‹ค์‹œ๊ฐ„ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ UX ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ ๊ตฌํ˜„

  • Proxy ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•œ ๋ฐ˜์‘ํ˜• ์ƒํƒœ ์—ฐ๊ฒฐ ๊ตฌ์กฐ ์„ค๊ณ„

  • throttle๊ณผ debounce๋ฅผ ์ด์šฉํ•œ ๊ณ ๋นˆ๋„ ์ด๋ฒคํŠธ ์ œ์–ด

  • ๋™์ ์œผ๋กœ ์ƒ์„ฑ/์‚ญ์ œ๋˜๋Š” DOM์— ์ด๋ฒคํŠธ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฒ•

  • SPA ๊ตฌ์กฐ์—์„œ ์ƒํƒœ ๋ณ€ํ™”์™€ DOM ์ด๋ฒคํŠธ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฒ•

๐Ÿš€ํด๋ฆญ ํ•œ ๋ฒˆ์— ๋ฐ˜์‘ํ•˜๋Š” ์ธํ„ฐ๋ž™์…˜์˜ ๋น„๋ฐ€, DOM ์ด๋ฒคํŠธ์˜ ๋ชจ๋“  ๊ฒƒ

๐Ÿšฆ์ž…๋ ฅ๊ฐ’์„ ์ž˜๋ชป ์ž…๋ ฅํ–ˆ์„ ๋•Œ ๋นจ๊ฐ„ ํ…Œ๋‘๋ฆฌ๋กœ ์•Œ๋ ค์ฃผ๊ณ ,
๐Ÿ–ฑ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ํˆดํŒ์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋”ฐ๋ผ์˜ค๊ณ ,
๐Ÿ—‘ ๋ฒ„ํŠผ ํ•˜๋‚˜๋กœ ์ˆ˜์‹ญ ๊ฐœ์˜ ๋™์  ํ•ญ๋ชฉ์„ ๊น”๋”ํ•˜๊ฒŒ ์‚ญ์ œํ•˜๊ณ โ€ฆ

์ด๋Ÿฐ UI๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์งˆ๊นŒ์š”?
์šฐ๋ฆฌ๋Š” ๋งค์ผ ์›น์‚ฌ์ดํŠธ์™€ ์ธํ„ฐ๋ž™์…˜ํ•˜์ง€๋งŒ, ๊ทธ ์•ˆ์—์„œ ๋ฒŒ์–ด์ง€๋Š” โ€˜์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์˜ ์ •๊ตํ•œ ์ž‘๋™ ์›๋ฆฌโ€™๋Š” ์ž˜ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์—์„œ๋Š” ๋ฐ”๋กœ ๊ทธ ์›๋ฆฌ๋ฅผ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊นŒ์ง€ ์ „๋ถ€ ์‹œ๊ฐํ™”ํ•˜๊ณ  ์‹ค์Šตํ•˜๋ฉฐ ์™„์ „ํžˆ ์ตํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


DOM ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์˜ ์ž‘๋™ ์›๋ฆฌ์™€ ์ด๋ฅผ ํ™œ์šฉํ•œ ๋™์  UI ๊ตฌํ˜„ ๊ธฐ๋ฒ• ์ „๋ฐ˜์„ ๋‹ค๋ฃจ๋Š” ์‹ค์ „ ์ค‘์‹ฌ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๊ฐœ๋… ์„ค๋ช…์— ๊ทธ์น˜์ง€ ์•Š๊ณ , ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ๋ถ€ํ„ฐ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ์ด๋ฒคํŠธ ํ๋ฆ„ ์ œ์–ด, ์ด๋ฒคํŠธ ์œ„์ž„, ๊ทธ๋ฆฌ๊ณ  ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•๊นŒ์ง€ ํ•œ ๋‹จ๊ณ„์”ฉ ๊ตฌํ˜„ํ•˜๋ฉฐ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ target, currentTarget, stopPropagation, mouseover, mouseenter ๋“ฑ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฌ์šด ์ด๋ฒคํŠธ ์š”์†Œ๋“ค์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋น„๊ตํ•˜๊ณ , ๋””๋ฒ„๊น…ํ•˜๋ฉด์„œ ์‹ค์Šตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ•์˜์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์†์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์งœ๋ณด๋Š” ๊ณผ์ • ์†์—์„œ, DOM ์ด๋ฒคํŠธ๋Š” ๋” ์ด์ƒ ์ด๋ก ์ด ์•„๋‹Œ โ€˜์ต์ˆ™ํ•œ ๋„๊ตฌโ€™๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์—๋Š” Proxy๋ฅผ ํ™œ์šฉํ•œ ์ƒํƒœ ๊ธฐ๋ฐ˜ UI๊นŒ์ง€ ํ™•์žฅํ•˜๋ฉฐ, ์‹ค์ œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฒคํŠธ-์ƒํƒœ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์ฒดํ—˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋ฉด React, Vue ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋‚ด๋ถ€ ํ๋ฆ„๋„ ๋”์šฑ ์‰ฝ๊ฒŒ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž๋ถ€ํ„ฐ ์ค‘๊ธ‰์ž๊นŒ์ง€, ๋‹จ์ˆœ ์ด๋ฒคํŠธ ๋“ฑ๋ก์„ ๋„˜์–ด์„œ โ€˜์›น ์ƒํ˜ธ์ž‘์šฉ์˜ ๋ณธ์งˆ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ „๋žตโ€™๊นŒ์ง€ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„์ด๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ๋“ค์–ด์•ผ ํ•  DOM ์ด๋ฒคํŠธ ์™„์ „ ์ •๋ณต ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

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

๐ŸŽฏ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋” ๋™์ ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์ž…๋ฌธ์ž

HTML/CSS๋Š” ์ต์ˆ™ํ•˜์ง€๋งŒ, ํด๋ฆญ, ์ž…๋ ฅ, ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ ๊ฐ™์€ ์ƒํ˜ธ์ž‘์šฉ ๊ตฌํ˜„์ด ๋ง‰๋ง‰ํ•œ ๋ถ„๋“ค์„ ์œ„ํ•œ ์ฒซ ์ด๋ฒคํŠธ ์ž…๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

๐Ÿงฑ ๋ฒ„ํŠผ ํด๋ฆญ, ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ์ฒ˜๋Ÿผ UI๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์‹ถ์€ ํผ๋ธ”๋ฆฌ์…”

๋””์ž์ธ์„ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋””์ž์ด๋„ˆ/ํผ๋ธ”๋ฆฌ์…”์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช ๋‹จ์ˆœ ์•”๊ธฐ ๋Œ€์‹  ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๋ฉฐ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ์‹ค์Šตํ˜• ํ•™์Šต์ž

mouseover์™€ mouseenter์˜ ์ฐจ์ด์ฒ˜๋Ÿผ, ๋ง๋กœ๋งŒ ๋“ค์œผ๋ฉด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…๋“ค์„ ์‹ค์ œ ์˜ˆ์ œ์™€ ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ๋ช…ํ™•ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”€ React, Vue๋Š” ๋ฐฐ์› ๋Š”๋ฐ ์ด๋ฒคํŠธ ํ๋ฆ„์ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ•™์Šต์ž

target, currentTarget, stopPropagation ๊ฐ™์€ ๊ฐœ๋…์ด ์•„์ง๋„ ๋จธ๋ฆฟ์†์—์„œ ์ •๋ฆฌ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด ๊ฐ•์˜๊ฐ€ ๊ธฐ์ค€์ ์„ ๋งŒ๋“ค์–ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

โš™ debounce์™€ throttle์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ์€ ์„ฑ๋Šฅ ์ค‘์‹ฌ ๊ฐœ๋ฐœ์ž

์™ธ์›Œ์„œ ์“ฐ๋Š” ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ, ์ด๋ฒคํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ์ง„์งœ ์›๋ฆฌ์™€ ๋™์ž‘ ๋ฐฉ์‹์ด ๊ถ๊ธˆํ•œ ๋ถ„๋“ค์„ ์œ„ํ•œ ์‹ค์ „ ์ฝ”๋“œ ์ค‘์‹ฌ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

๐Ÿงฉ ์ด๋ฒคํŠธ ์œ„์ž„์˜ ํšจ์œจ์„ฑ๊ณผ ๊ตฌ์กฐ๋ฅผ ์ฒด๊ฐํ•˜๊ณ  ์‹ถ์€ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์ž

li๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ๋ฅผ ๊ฐœ๋ณ„ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜, ํ•˜๋‚˜์˜ ๋ฆฌ์Šค๋„ˆ๋กœ ์ˆ˜์‹ญ ๊ฐœ๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋ชธ์œผ๋กœ ์ตํž™๋‹ˆ๋‹ค.

๐Ÿง  DOM๊ณผ ์ด๋ฒคํŠธ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋ฉฐ ๊นŠ์ด ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ์ค‘๊ธ‰ ๊ฐœ๋ฐœ์ž

๋‹จ์ˆœํ•œ API ํ˜ธ์ถœ์ด ์•„๋‹ˆ๋ผ, ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ๋ฅด๊ณ  ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ์ฝ˜์†”์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ— ์ง์ ‘ ๋งŒ๋“  SPA ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „์˜ ๊ฐœ๋…์„ ๋งˆ์Šคํ„ฐํ•˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

Proxy๋ฅผ ์ด์šฉํ•œ ์ƒํƒœ ์ถ”์ , UI ์ž๋™ ๋ฐ˜์˜ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด React/Vue๊ฐ€ ๋‚ด๋ถ€์—์„œ ํ•˜๋Š” ์ผ์„ ์ง์ ‘ ์ฒดํ—˜ํ•ด๋ด…๋‹ˆ๋‹ค.

๐Ÿงผ ์‹ค์ „์—์„œ ์ž์ฃผ ์“ฐ๋Š” UX ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ์€ ์‹ค๋ฌด ์ง€ํ–ฅ ํ•™์Šต์ž

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

๐Ÿ” ์ด๋ฒคํŠธ๋Š” ๋‹ค ์•„๋Š” ์ค„ ์•Œ์•˜์ง€๋งŒ ๋ง‰์ƒ ์“ฐ๋ ค๋ฉด ๋ง‰๋ง‰ํ•œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž

form.submit์—์„œ preventDefault๋ฅผ ์“ฐ๋Š” ์ด์œ ์กฐ์ฐจ ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ์ด๋ฒคํŠธ ํ๋ฆ„์ด ๋ง‰์—ฐํ•˜๋‹ค๋ฉด ์ด ๊ฐ•์˜๊ฐ€ ๊ฐ€์žฅ ๋ช…์พŒํ•œ ์ •๋ฆฌ์„œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์˜ ํŠน์ง•

๐Ÿ“Œ 100% ์‹œ๊ฐ ์ค‘์‹ฌ ์„ค๋ช…: addEventListener ๊ตฌ์กฐ, ๋ฒ„๋ธ”๋ง/์บก์ฒ˜๋ง ํ๋ฆ„, ์ด๋ฒคํŠธ ์œ„์ž„๊นŒ์ง€ ์‹œ๊ฐํ™” ์„ค๋ช…

๐Ÿ“Œ ์‹ค์Šต 70%, ๊ตฌํ˜„ 30%: ๋ชจ๋“  ๊ฐœ๋…์€ HTML/CSS/JS๋กœ ์ง์ ‘ ์‹ค์Šตํ•˜๊ณ  ๋ˆˆ์œผ๋กœ ํ™•์ธ

๐Ÿ“Œ ์ค‘๊ฐ„์ค‘๊ฐ„ ์‹ค์ „ ๋ฏธ์…˜ ์ œ๊ณต: ์ž…๋ ฅ ๊ฒ€์ฆ, ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ, ๋™์  UI ๊ตฌํ˜„, ์ƒํƒœ ์—ฐ๊ฒฐ ๋“ฑ ๋ฐ˜๋ณต ํ›ˆ๋ จ

๐Ÿ“Œ ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „ ํ•„์ˆ˜ ์ง€์‹: React/Vue๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „ ์ด๋ฒคํŠธ ํ๋ฆ„๊ณผ ์ƒํƒœ-๋ Œ๋”๋ง ์—ฐ๊ฒฐ ๊ตฌ์กฐ ์Šต

๐Ÿ“Œ ๋‹จ์ˆœ ๊ฐœ๋… ์•”๊ธฐ๊ฐ€ ์•„๋‹Œ โ€˜์ธํ„ฐ๋ž™์…˜ ๊ฐ๊ฐโ€™ ํ›ˆ๋ จ: UX ์ค‘์‹ฌ์˜ ์‹œ์  ์ œ์–ด, ์‚ฌ์šฉ์ž ํ–‰๋™ ํ๋ฆ„ ๋ถ„์„

๐ŸŽ“ ์ˆ˜๊ฐ• ํ›„์—๋Š”

  • addEventListener์˜ ๋ชจ๋“  ์˜ต์…˜๊ณผ ํ๋ฆ„์„ ์ž์œ ์ž์žฌ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ, ์ž…๋ ฅ์ฐฝ ๋“ฑ์˜ ์ž…๋ ฅ ์ด๋ฒคํŠธ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • target, currentTarget, stopPropagation ๋“ฑ์˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…์„ ์™„์ „ํžˆ ์‹œ๊ฐ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • mouseover, mouseenter, mousemove์˜ ์ฐจ์ด์ ๊ณผ ์„ ํƒ ๊ธฐ์ค€์„ ์ •ํ™•ํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ์ด๋ฒคํŠธ ์œ„์ž„(event delegation) ๊ตฌ์กฐ๋ฅผ ์‹ค์ „ ํ”„๋กœ์ ํŠธ์— ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ debounce์™€ throttle ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ณ  ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ์‹ค์‹œ๊ฐ„ ์ž…๋ ฅ ๊ฒ€์ฆ, ํ…Œ๋‘๋ฆฌ ์ƒ‰ ํ”ผ๋“œ๋ฐฑ, ๋™์  ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๋“ฑ UX ์ค‘์‹ฌ ์ด๋ฒคํŠธ ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • Proxy ๊ธฐ๋ฐ˜ ์ž๋™ ์ƒํƒœ-UI ์—ฐ๊ฒฐ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ํ•˜๋‚˜์˜ state๋กœ ์—ฌ๋Ÿฌ DOM ์š”์†Œ๋ฅผ ๋™์‹œ์— ์กฐ์ž‘ํ•˜๋Š” SPA ๊ธฐ์ดˆ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ์ „์ฒด ์ด๋ฒคํŠธ ๊ตฌ์กฐ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ณ  ์ฝ˜์†”๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ˆˆ๊ณผ ๊ฐ๊ฐ์ด ์ƒ๊น๋‹ˆ๋‹ค

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

โœ… ์ด๋ฒคํŠธ ๊ฐ์ฒด ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ

target, currentTarget, type ๋“ฑ ์ด๋ฒคํŠธ ๊ฐ์ฒด์˜ ๋ชจ๋“  ์†์„ฑ์„ ๋ถ„์„ํ•˜๊ณ  ์‹ค์ œ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

๐Ÿญ ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ์˜ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด

mouseover, mouseenter, mousemove๋Š” ์–ธ์ œ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”? ์‹ค์ œ ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•˜๋ฉฐ ์ •ํ™•ํžˆ ๋น„๊ตํ•ด๋ด…๋‹ˆ๋‹ค.

โ›” ์ด๋ฒคํŠธ ์ „ํŒŒ ์ œ์–ด ๊ธฐ์ˆ 

stopPropagation, stopImmediatePropagation์˜ ์ฐจ์ด์™€ ์‹ค์ œ DOM ํ๋ฆ„์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์‹คํ—˜๊ณผ ํ•จ๊ป˜ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์„ค๊ณ„

input, focus, blur ์ด๋ฒคํŠธ๋ฅผ ํ™œ์šฉํ•ด ์ž…๋ ฅ๊ฐ’ ๊ฒ€์ฆ ๋กœ์ง์„ ์„ค๊ณ„ํ•˜๊ณ , ์‹ค๋ฌด์ ์ธ ํผ ์œ ํšจ์„ฑ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค.

๐ŸŽจ ์‹ค์‹œ๊ฐ„ ์‹œ๊ฐ ํ”ผ๋“œ๋ฐฑ UI

์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ๋ณ€๊ฒฝ, ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ๋“ฑ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ UX ํŒจํ„ด์„ CSS + JS๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿชข ์ด๋ฒคํŠธ ์œ„์ž„ ํŒจํ„ด ๋งˆ์Šคํ„ฐ

๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋œ ํ•ญ๋ชฉ์—๋„ ์ž๋™์œผ๋กœ ์ ์šฉ๋˜๋Š” ์ด๋ฒคํŠธ ์œ„์ž„ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์‹ค์ „ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ด…๋‹ˆ๋‹ค.

๐Ÿ•ต ์ด๋ฒคํŠธ ํ๋ฆ„ ๋””๋ฒ„๊น…๊ณผ ์‹œ๊ฐํ™”

์บก์ฒ˜๋ง โ†’ ํƒ€๊ฒŸ โ†’ ๋ฒ„๋ธ”๋ง ๋‹จ๊ณ„์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ „ํŒŒ๋˜๋Š”์ง€ ๋ธŒ๋ผ์šฐ์ € ๋””๋ฒ„๊ฑฐ์™€ ๋„๊ตฌ๋ฅผ ์ด์šฉํ•ด ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” Proxy ๊ธฐ๋ฐ˜ ์ƒํƒœ-UI ๋ฐ”์ธ๋”ฉ

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

๐Ÿง  throttle vs debounce ์™„์ „ ์ดํ•ด

์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ด๋ฒคํŠธ ์ œ์–ด ๊ธฐ๋ฒ•์ธ throttle๊ณผ debounce๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ณ  ์–ธ์ œ, ์™œ ์จ์•ผ ํ•˜๋Š”์ง€ ๋ชธ์œผ๋กœ ๋ฐฐ์›๋‹ˆ๋‹ค.

๐Ÿงฉ DOM ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ SPA ๊ตฌ์กฐ ์„ค๊ณ„

SPA ํ™˜๊ฒฝ์—์„œ ์ƒํƒœ, ์ด๋ฒคํŠธ, ๋ Œ๋”๋ง์ด ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”์ง€๋ฅผ ์‹ค์ œ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋กœ ๊ตฌ์„ฑํ•ด๋ณด๋ฉฐ ๊ตฌ์กฐ๋ฅผ ์ตํž™๋‹ˆ๋‹ค.

๐Ÿงฉ ์ด๋Ÿฐ ๋ฏธ์…˜์„ ๋‹ค๋ค„์š”

โœ… Mission A โ€“ ์‹ค์‹œ๊ฐ„ ์ž…๋ ฅ ํ”ผ๋“œ๋ฐฑ ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ ์ฆ‰์‹œ ์‹œ๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” UX๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: input, blur, focus ์ด๋ฒคํŠธ๋ฅผ ํ™œ์šฉํ•ด ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์‚ฌํ•˜๊ณ , ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด ๋นจ๊ฐ„ ํ…Œ๋‘๋ฆฌ์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€, ์œ ํšจํ•˜๋ฉด ์ดˆ๋ก ํ…Œ๋‘๋ฆฌ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์›๋‹ˆ๋‹ค.

โœ… Mission B โ€“ ์ด๋ฒคํŠธ ์œ„์ž„์„ ํ†ตํ•œ ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋™์  ์š”์†Œ์— ํšจ์œจ์ ์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
๋‚ด์šฉ ์š”์•ฝ: <ul>์— ๋‹จ ํ•˜๋‚˜์˜ ๋ฆฌ์Šค๋„ˆ๋งŒ ๋“ฑ๋กํ•œ ๋’ค, ํด๋ฆญ๋œ ๋ฒ„ํŠผ์˜ ์œ„์น˜๋ฅผ event.target๊ณผ closest()๋กœ ํŒŒ์•…ํ•ด ํ•ด๋‹น ํ•ญ๋ชฉ๋งŒ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ๋ Œ๋”๋ง์—๋„ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฒคํŠธ ์œ„์ž„ ์ „๋žต์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

โœ… Mission C โ€“ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์ƒํƒœ ๊ฐ์ฒด์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ํ™”๋ฉด์ด ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ๋˜๋Š” ๊ตฌ์กฐ ๊ตฌํ˜„
๋‚ด์šฉ ์š”์•ฝ: Proxy๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ ๊ฐ์ฒด์˜ ๊ฐ’์„ ๊ฐ์ง€ํ•˜๊ณ , ์ด ๊ฐ’์ด ๋ฐ”๋€Œ๋ฉด display.textContent๋ฅผ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ Œ๋” ํ•จ์ˆ˜ ์—†์ด๋„ ๋™์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ํ™”๋ฉด์„ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ SPA์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

โœ… Mission D โ€“ ์ƒํƒœ ์—ฐ๋™ํ˜• SPA ๊ตฌ์กฐ ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ์ƒํƒœ์™€ ์ด๋ฒคํŠธ ์œ„์ž„์„ ๊ฒฐํ•ฉํ•ด ๋™์  ๋ฆฌ์ŠคํŠธ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๊ด€๋ฆฌ
๋‚ด์šฉ ์š”์•ฝ: Proxy๋กœ ๊ด€๋ฆฌ๋˜๋Š” todos ์ƒํƒœ์— ๋”ฐ๋ผ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๊ณ , ์™„๋ฃŒ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ƒํƒœ๋งŒ ๋ฐ”๊ฟ”๋„ ํ™”๋ฉด์ด ์ž๋™์œผ๋กœ ๋ฐ˜์‘ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์œ„์ž„์„ ํ†ตํ•ด ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํ•ญ๋ชฉ๋„ ๋ฌธ์ œ์—†์ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… Mission E โ€“ ์ด๋ฒคํŠธ ํ๋ฆ„ ์ถ”์  ๋ฐ ๋””๋ฒ„๊น… ๋ฏธ์…˜
์‹ค์Šต ๋ชฉํ‘œ: ๋ฌด๊ฑฐ์šด ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ œ์–ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์œ ์ง€
๋‚ด์šฉ ์š”์•ฝ: scroll, mousemove, input ๊ฐ™์€ ์žฆ์€ ์ด๋ฒคํŠธ์— throttle๊ณผ debounce ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ด ๋ถˆํ•„์š”ํ•œ ์ฒ˜๋ฆฌ ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ณ , ๋ธŒ๋ผ์šฐ์ €์˜ ๋ถ€ํ•˜๋ฅผ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. UX์™€ ์„ฑ๋Šฅ์„ ๋™์‹œ์— ๊ณ ๋ คํ•˜๋Š” ์‹ค์ „ ์ตœ์ ํ™” ์ „๋žต์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

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

ํ•™์Šต ์ž๋ฃŒ

  • ๋ชจ๋“  ๊ฐ•์˜์—๋Š” ์š”์•ฝ PDF, ์‹ค์Šต์šฉ ์ฝ”๋“œ ํŒŒ์ผ, ์—ฐ์Šต๋ฌธ์ œ ๋ฐ ๋ฏธ์…˜ ๊ณผ์ œ๊ฐ€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

  • ๊ฐ ์ž๋ฃŒ๋Š” ๊ฐ•์˜ ํ๋ฆ„์— ๋งž์ถฐ ๋‹จ๊ณ„๋ณ„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, ๋ณต์Šต๊ณผ ์‹ค์Šต ๋ชจ๋‘ ํšจ์œจ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค

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

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

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

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

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

  • (์„ ํƒ) Part 1: DOM ๊ตฌ์กฐ์™€ API์˜ ๊ธฐ์ดˆ ๊ฐœ๋… ์ˆ˜๊ฐ• ์™„๋ฃŒ

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

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

  • DOM ์ด๋ฒคํŠธ ํ๋ฆ„์„ ๊ตฌ์กฐ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ์ดˆ๊ธ‰~์ค‘๊ธ‰ ๊ฐœ๋ฐœ์ž

  • ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์ด ๋งŽ์€ UI๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•ด๋ณด๊ณ  ์‹ถ์€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

  • ์ด๋ฒคํŠธ ์œ„์ž„, ํƒ€๊ฒŸ ๊ฐ์ง€, ์ƒํƒœ ์—ฐ๊ฒฐ์— ์–ด๋ ค์›€์„ ๋А๋ผ๋Š” ํ•™์Šต์ž

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํšจ์œจ์ ์ธ ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๋ถ„

  • ๊ฒ€์ƒ‰์ฐฝ, ์ฒดํฌ๋ฆฌ์ŠคํŠธ, ์‹ค์‹œ๊ฐ„ ์—๋Ÿฌ ๊ฐ์ง€ ๋“ฑ ์‹ค๋ฌด UI ๊ตฌํ˜„์ด ๋ชฉํ‘œ์ธ ๋ถ„

  • ์ด๋ฒคํŠธ ์ค‘๋ณต ์‹คํ–‰ ๋ฌธ์ œ๋กœ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์„ ๊ฒฝํ—˜ํ•œ ๊ฐœ๋ฐœ์ž

  • ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด ์ˆœ์ˆ˜ JS๋กœ UI ์ƒํƒœ๋ฅผ ์ œ์–ดํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • Proxy์™€ SPA ๊ตฌ์กฐ์˜ ๋‚ด๋ถ€ ์ž‘๋™ ๋ฐฉ์‹์„ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • ์‹ค์‹œ๊ฐ„ ํผ ํ”ผ๋“œ๋ฐฑ ๋ฐ ์ž๋™ ๋ Œ๋”๋ง ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ๋””์ž์ด๋„ˆ/๊ธฐํš์ž

  • ์ค‘๋ณต๋˜๋Š” DOM ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์€ ํŒ€ ๊ฐœ๋ฐœ์ž

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

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

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

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

  • (์„ ํƒ) Part 1: DOM ๊ตฌ์กฐ์™€ API์˜ ๊ธฐ์ดˆ ๊ฐœ๋… ์ˆ˜๊ฐ• ์™„๋ฃŒ

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

1,334

๋ช…

์ˆ˜๊ฐ•์ƒ

68

๊ฐœ

์ˆ˜๊ฐ•ํ‰

29

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

16

๊ฐœ

๊ฐ•์˜

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

์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค๋Š” ์นด๋„ค๊ธฐ ๋ฉœ๋ก , ์›Œ์‹ฑํ„ด, ํ† ๋ก ํ† , ์›Œํ„ฐ๋ฃจ ๋“ฑ ๋ถ๋ฏธ์˜ ์ฃผ์š” ๋Œ€ํ•™์—์„œ ์ปดํ“จํ„ฐ๊ณตํ•™์„ ์ „๊ณตํ•˜๊ณ , 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.

๋”๋ณด๊ธฐ

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

์ „์ฒด

59๊ฐœ โˆ™ (3์‹œ๊ฐ„ 11๋ถ„)

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

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

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

6๊ฐœ

4.7

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

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

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

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

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

      ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, Smith Peter๋‹˜! ๊ท€ํ•œ ํ‰๊ฐ€๋ฅผ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ •๋ง ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๊ธฐ์— ์ €๋„ ๋” ์—ด์ •์ ์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ค€๋น„ํ•˜๊ณ , ๋” ์ข‹์€ ์ปจํ…์ธ ๋ฅผ ๋งŽ์ด ๋งŒ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๋”์šฑ ์•Œ์ฐจ๊ณ  ๊นŠ์ด ์žˆ๋Š” ๊ฐ•์˜๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ 8์›” ๋ง์—๋Š” [DOM ์™„์ „ ์ •๋ณต Part 3] โ€“ Critical Rendering Path ์™„๋ฒฝ ๋ถ„์„๊ณผ ์‹ค์ „ ์ตœ์ ํ™” ๊ฐ•์˜๊ฐ€ ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ Part 2์—์„œ ๋‹ค๋ฃฌ ์ด๋ฒคํŠธ์™€ SPA์˜ ์ดํ•ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์„ฑ๋Šฅ๊ณผ ์ตœ์ ํ™”๊นŒ์ง€ ์™„๋ฒฝํ•˜๊ฒŒ ๋งˆ์Šคํ„ฐํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜Š ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ๋“ ์ง€ ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ธฐ์‹œ๊ฑฐ๋‚˜, ๊ฐœ๋ฐœ ๊ด€๋ จํ•ด์„œ ๋„์›€์ด ํ•„์š”ํ•˜์‹ค ๋•Œ๋Š” ์•„๋ž˜ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์„ ์ž์œ ๋กญ๊ฒŒ ์ด์šฉํ•ด ์ฃผ์„ธ์š”. ๊ฐ™์ด ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค๊ณผ ์†Œํ†ต๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ์ €๋„ ์ž์ฃผ ๋“ค๋Ÿฌ์„œ ํ•จ๊ป˜ ๊ณ ๋ฏผ ๋‚˜๋ˆ„๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๐Ÿ“ฎ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ: https://open.kakao.com/o/gC10Fnoh ๊ฐœ๋ฐœ ์—ฌ์ •์„ ์–ธ์ œ๋‚˜ ์ง„์‹ฌ์œผ๋กœ ์‘์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ•์˜์—์„œ ๊ผญ ๋‹ค์‹œ ๋ต ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ผ์š”! ๐Ÿš€

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

    ์ˆ˜๊ฐ•ํ‰ 3

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

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

    DOM์˜ ๊นŠ์€ ๊ฐœ๋…๋“ค์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„๋„ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋˜ ์˜๋ฌธ์ ๋“ค์˜ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‹ค์Œ ํŒŒํŠธ๋„ ์—ด์‹ฌํžˆ ๋“ค์œผ๋Ÿฌ ๊ฐˆ๊ฒŒ์š”!

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

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

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

    ์ˆ˜๊ฐ•ํ‰ 2

    โˆ™

    ํ‰๊ท  ํ‰์  4.5

    5

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

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

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

  • ๋ณ€๊ธฐ์›๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๋ณ€๊ธฐ์›

    ์ˆ˜๊ฐ•ํ‰ 4

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

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

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

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

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

    ์ˆ˜๊ฐ•ํ‰ 330

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

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

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

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

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

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

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

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

โ‚ฉ29,700