ํ๋ฐํธ์๋ ๊ฐ์ DOM์ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์ค์ํ ๊ฐ๋ ์ด๋ฉฐ ์ฃผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์ ๋ฐ์ดํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ์ DOM์ ์ค๊ฐ ์ฒ๋ฆฌ ๊ณ์ธต ์ญํ ์ ํ๋ ์ค์ DOM(๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ)์ ๋ฉ๋ชจ๋ฆฌ ๋ด ํํ์ผ๋ก ์ ์ํ ์ ์์ผ๋ฉฐ ํ๋ฐํธ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ํจ์จ์ ์ธ ์ ๋ฐ์ดํธ ๋ฐ ๋ ๋๋ง ๋ฉ์ปค๋์ฆ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. Virtual DOM ๊ฐ๋ ์ React, VueJS, Angular์ ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ฐํธ์๋ ํ๋ ์์ํฌ์์ ๋๋ฆฌ ์ฑํ๋์์ผ๋ฉฐ AppMasterno-code ํ๋ซํผ์์ ์์ฑ๋ ๊ฒ์ ํฌํจํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ํ์ค ๋ฐฉ๋ฒ๋ก ์ ๋๋ค.
Frontend Virtual DOM์ ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๋ ค๋ฉด ๋จผ์ ๊ธฐ์กด DOM ์กฐ์ ๋ฐฉ๋ฒ์ ํ๊ณ๋ฅผ ์๋ณํด์ผ ํฉ๋๋ค. ์ค์ DOM์ ์นํ์ด์ง์ HTML ์์๋ฅผ ๋ํ๋ด๋ ํธ๋ฆฌํ ๊ตฌ์กฐ์ ๋๋ค. ํ ์คํธ ์์ , CSS ์คํ์ผ ์ ๋ฐ์ดํธ, ์์ ์ถ๊ฐ ๋ฐ ์ญ์ ๋ฑ ํ์ด์ง๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด DOM ์์๋ฅผ ์ง์ ์กฐ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ๋๋ง๋ ์น ํ์ด์ง ์์๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด DOM๊ณผ ์ํธ ์์ฉํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์์ ์๋๊ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ ๋๋ง ์ฑ๋ฅ์ด ๋นํจ์จ์ ์ ๋๋ค. ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ์ถํ๊ณผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก์ฑ ์ฆ๊ฐ๋ก ์ธํด ์ด๋ฌํ DOM ์์ ์ ๋น๋๋ฅผ ์ต์ํํ๊ณ UI ์ ๋ฐ์ดํธ๋ฅผ ์ต์ ํํ๋ ์ ๊ทผ ๋ฐฉ์์ ๊ณ ์ํ๋ ๊ฒ์ด ํ์์ ์ด ๋์์ต๋๋ค.
ํ๋ฐํธ์๋ ๊ฐ์ DOM์ ์ด๋ฌํ ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ผ๋ก ์ ์๋์์ผ๋ฉฐ, ์ค์ DOM์ ๊ฐ๋ฒผ์ด ์ธ๋ฉ๋ชจ๋ฆฌ ํํ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ DOM ํธ๋ฆฌ๋ ์ค์ DOM ์์์ ๊ตฌ์กฐ์ ์์ฑ์ ๋ฐ์ํ์ง๋ง ๋๋ฆฌ๊ณ ๋ฒ๊ฑฐ๋ก์ด ์ค์ DOM๊ณผ ์ง์ ์ํธ ์์ฉํ์ง ์๊ณ ๋ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ํธ ์์ฉ์ด๋ ๋ฐฑ์๋ ์๋น์ค์ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ๋ฑ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ค์ DOM์ ์ฆ์ ์ ๋ฐ์ดํธํ๋ ๋์ ๊ฐ์ DOM์ด ๋จผ์ ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ฐ๋ฐ์๋ ์ ๋ฐ์ดํธ๋ฅผ ์ผ๊ด ์ฒ๋ฆฌํ๊ณ ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ณ Virtual DOM ๋ณ๊ฒฝ ์ฌํญ์ ๋น๊ตํ์ฌ ์ค์ DOM ์์ ์ฌํญ์ ์ ์ฉํ๋ ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
"์ฐจ์ด์ " ๋๋ "์กฐ์ "์ผ๋ก ์๋ ค์ง ๊ฐ์ DOM๊ณผ DOM์ ํจ์จ์ ์ผ๋ก ๋น๊ตํ๊ณ ์ ๋ฐ์ดํธํ๋ ํ๋ก์ธ์ค์๋ ์์ฑ, ๋น๊ต ๋ฐ โโํจ์น๋ผ๋ ์ธ ๊ฐ์ง ๊ธฐ๋ณธ ๋จ๊ณ๊ฐ ํฌํจ๋ฉ๋๋ค. ์์ฑ ๋จ๊ณ์๋ ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ๊ฐ์ DOM ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ๋น๊ต ๋จ๊ณ์๋ ์๋ก์ด ๊ฐ์ DOM ํธ๋ฆฌ์ ์ด์ ๊ฐ์ DOM ํธ๋ฆฌ๋ฅผ ๋น๊ตํ์ฌ ์ค์ DOM์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ๋๋ก ๋ง๋๋ ๋ฐ ํ์ํ ์ต์ํ์ ์์ ์งํฉ์ ๊ฒฐ์ ํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ํจ์น ๋จ๊ณ์๋ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์ DOM์ ์ ์ฉํ์ฌ ์ ๋ฐ์ดํธ๋ UI๊ฐ ํฌํจ๋ฉ๋๋ค. Virtual DOM์ ํ์ฉํ๋ ์ด๋ฌํ ๋ฐฉ๋ฒ๋ก ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ ๋ฐ ๋ ๋๋ง ์ ์๋นํ ์ฑ๋ฅ ํฅ์์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ๋์ฑ ์ํํ๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก ํธ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋๋ฆฌ ์ฑํ๋๋ React, VueJS, Angular์ ๊ฐ์ ํ๋ ์์ํฌ์์๋ Virtual DOM ๊ฐ๋ ์ ์ฑํํ๊ณ ๋์คํํ์ต๋๋ค. AppMaster ( no-code ํ๋ซํผ)๋ Vue3 ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ฏ๋ก Virtual DOM์ ์ด์ ์ ํ์ฉํ์ฌ ์ด ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ๊ณผ ํจ์จ์ฑ์ ๋ณด์ฅํฉ๋๋ค. AppMaster ํ๋ซํผ์ Virtual DOM ๊ตฌํ์ ๋ค๋ฅธ ์ต์ ํ์ ํจ๊ป ๊ณ ์ฑ๋ฅ UI ์ ๋ฐ์ดํธ์ ํจ์จ์ ์ธ ๋ ๋๋ง ๊ธฐ๋ฅ์ ๋ณด์ฅํ๋ ๋์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก Frontend Virtual DOM์ ํจ์จ์ ์ธ UI ์ ๋ฐ์ดํธ ๋ฐ ๋ ๋๋ง ๋ฉ์ปค๋์ฆ์ ํ์์ฑ์ ํด๊ฒฐํ๋ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ค์ํ ๊ฐ๋ ์ ๋๋ค. ์ค์ DOM์ ๋ํ ๊ฐ๋ฒผ์ด ์ธ๋ฉ๋ชจ๋ฆฌ ํํ์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๋ UI ์์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค. Virtual DOM ๊ฐ๋ ์ React, VueJS, Angular์ ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ฐํธ์๋ ํ๋ ์์ํฌ์ ๋๋ฆฌ ์ฑํ๋์์ผ๋ฉฐ AppMasterno-code ํ๋ซํผ์ผ๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ต์ฒจ๋จ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์์ ์ผ๋ฐ ๊ฐ๋ฐ์ ๋ชจ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ํฅ์ ์ต์ํํ๋ฉด์ ํจ์จ์ฑ๊ณผ ์์ฐ์ฑ์ ์ต๋ํํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋๋ฉฐ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.