๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Virtual DOM

๋ณต์žกํ•œ SPA(์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜) ์—์„œ๋Š” DOM ์กฐ์ž‘์ด ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ ๋ณ€ํ™”๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋งŽ์ด ์—ฐ์‚ฐ์„ ํ•ด์•ผํ•œ๋‹จ ์†Œ๋ฆฌ๊ณ , ์ „์ฒด์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ ๋‹ค๋Š” ๋œป์ด๋‹ค. 

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

Virtual DOM ์ด ํ•ด๊ฒฐ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๊ฑด ๋ฌด์—‡์ด๋ƒ? DOM fragment๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ์ˆ˜๋™์œผ๋กœ ์ž‘์—… ํ•  ํ•„์š” ์—†์ด, ์ž๋™ํ™”ํ•˜๊ณ  ์ถ”์ƒํ™”ํ•˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋งŒ์•ฝ์— ์ž‘์—…์„ ์ง์ ‘ ํ•œ๋‹ค๋ฉด, ๊ธฐ์กด ๊ฐ’ ์ค‘ ์–ด๋–ค๊ฒŒ ๋ฐ”๋€Œ์—ˆ๊ณ  ์–ด๋–ค๊ฒŒ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋Š”์ง€ ๊ณ„์† ํŒŒ์•…ํ•˜๊ณ  ์žˆ์–ด์•ผํ•˜๋Š”๋ฐ (๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ˆ˜์ • ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” DOM ํŠธ๋ฆฌ๋„ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ), ์ด๊ฒƒ๋„ Virtual DOM ์ด ์ด๊ฑธ ์ž๋™์œผ๋กœ ํ•ด์ค€๋‹ค. ์–ด๋–ค๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ , ์–ด๋–ค๊ฒŒ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋Š”์ง€ ์•Œ์•„๋‚ด์ค€๋‹ค.

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

๋ฐ˜์‘ํ˜•