Virtual dom ๐Ÿšฉ

HSKwonยท2022๋…„ 7์›” 1์ผ
0

Virtual DOM์€ UI์˜ ์ด์ƒ์ ์ธ ๋˜๋Š” ๊ฐ€์ƒ์ ์ธ ํ‘œํ˜„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ , ReactDOM๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์‹ค์ œ DOM๊ณผ ๋™๊ธฐํ™”ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์ด๋‹ค. ์ด ๊ณผ์ •์„ ์žฌ์กฐ์ •์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด ์ ‘๊ทผ๋ฐฉ์‹์ด React์˜ ์„ ์–ธ์  API๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. React์—๊ฒŒ ์›ํ•˜๋Š” UI์˜ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด DOM์ด ๊ทธ ์ƒํƒœ์™€ ์ผ์น˜ํ•˜๋„๋ก ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์•ฑ ๊ตฌ์ถ•์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์กฐ์ž‘, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ˆ˜๋™ DOM ์—…๋ฐ์ดํŠธ๋ฅผ ์ถ”์ƒํ™”ํ•œ๋‹ค. ์ฆ‰, Dom์„ ์ง์ ‘์ ์œผ๋กœ ์กฐ์ž‘ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, Dom์„ ์ถ”์ƒํ™”ํ•œ ๊ฐ์ฒด์ธ Virtual Dom์— ์กฐ์ž‘์„ ๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹.

Virtual DOM์€ ํŠน์ • ๊ธฐ์ˆ ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ํŒจํ„ด์— ๊ฐ€๊น๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ๋žŒ๋“ค๋งˆ๋‹ค ์˜๋ฏธํ•˜๋Š” ๋ฐ”๊ฐ€ ๋‹ค๋ฅด๋‹ค. React์—์„œ Virtual DOM์ด๋ผ๋Š” ์šฉ์–ด๋Š” ๋ณดํ†ต ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— React elements์™€ ์—ฐ๊ด€๋œ๋‹ค.

Virtual DOM์€ Dom๊ณผ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค.
1๋ฒˆ์„ ๋‹ค์‹œ ๋งํ•˜์ž๋ฉด, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ DOM์— ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ค‘๊ฐ„ ๋‹จ๊ณ„๋กœ Virtual DOM์„ ์ˆ˜์ •ํ•˜๊ณ  Virtual DOM์„ ํ†ตํ•ด์„œ DOM์„ ์ˆ˜์ •.
Virtual DOM์— ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ํ•œ ๋ฒˆ์— ๋ชจ์œผ๊ณ (๋ฒ„ํผ๋ง) ์‹ค์ œ DOM๊ณผ ๋ณ€๊ฒฝ๋œ Virtual DOM์˜ ์ฐจ์ด๋ฅผ ํŒ๋‹จํ•œ ํ›„, ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ณ€๊ฒฝ์ด ๋ถ€๋ถ„๋งŒ ์ฐพ์•„ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ฅธ ๋ Œ๋”๋ง์„ ํ•œ ๋ฒˆ๋งŒ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐ

๊ทธ๋ ‡๋‹ค๋ฉด DOM์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

Dom์€ ๋ฌธ์„œ๊ฐ์ฒด๋ชจ๋ธ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‹ค๋ฃฐ HTML๋ฌธ์„œ๋ฅผ Parsingํ•˜์—ฌ '๋ฌธ์„œ์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค์„ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ' ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด virtual Dom์€ ๋ฌด์—‡ ๋•Œ๋ฌธ์—, ๋˜ํ•œ ๊ทธ ๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ผ๊นŒ.์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ์ผ๊นŒ?

๋ฌธ์ œ์ ๋“ค

DOM ์กฐ์ž‘์— ์˜ํ•œ ๋ Œ๋”๋ง์ด ๋น„ํšจ์œจ์ ์ธ ๋ฌธ์ œ
SPA(Single Page Application)ํŠน์ง•์œผ๋กœ DOM ๋ณต์žก๋„ ์ฆ๊ฐ€์— ๋”ฐ๋ฅธ ์ตœ์ ํ™” ๋ฐ ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ๋” ์–ด๋ ค์›Œ์ง€๋Š” ๋ฌธ์ œ

DOM์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋ฉด ๊ทธ ๋งŒํผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง์„ ์ž์ฃผํ•˜๊ฒŒ ๋˜๊ณ , ๊ทธ ๋งŒํผ PC ์ž์›์„ ๋งŽ์ด ์†Œ๋ชจํ•˜๊ฒŒ๋˜๋Š” ๋ฌธ์ œ๋‹ค.

virtual Dom ์— ๊ด€ํ•ด ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ์•„์ฃผ ๊ฐ„๋‹จํžˆ ์™œ, ๋ฌด์—‡์ด, ๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–‡๋Š”๊ฐ€์— ๋Œ€ํ•ด์„  ๋‹ค์Œ ๋ฌธ์žฅ์œผ๋กœ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.(๊ฐœ๋…์ด ์–ด๋ ต๋‹ค. ์ดํ•ด๋งŒ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋Š” ์ชฝ์œผ๋กœ ํ•˜์ž.)

profile
๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ด๋‚˜ ๊ด€์‹ฌ ์žˆ๋Š” ์ •๋ณด๋ฅผ ๊ธ€๋กœ ์ •๋ฆฌํ•˜๋ฉฐ ์ต์ˆ™ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

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