๋ธ๋ผ์ฐ์ ์์์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ HTML ๋ฌธ์๋ฅผ ์กฐ์ํ๊ธฐ ์ํ API๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ง์ HTML์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ฐ ํ๊ณ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์กฐ์ํ๊ธฐ ํธํ๊ฒ DOM์ด๋ ํํ๋ก ๋ฐ๊ฟ๋์ ๊ฒ์ด๋ฉฐ, ๋ ๋ค์ํ๊ณ ๋ณต์กํ ์ธํฐ๋ ์ ์ ๋ง๋ค๊ณ ํ๋ฉด์ ๊ตฌํํ๊ธฐ ์ํด ํ์ํ๋ค.
DOM์ ์ถ์ํํ ๊ฐ์์ ๊ฐ์ฒด๋ผ๊ณ ํ ์ ์๋ค.
Dom ์กฐ์์ ์ํ ๋ ๋๋ง์ด ๋นํจ์จ์ ์ด๋ฉฐ, SPA(Single Page Application) ํน์ง์ผ๋ก DOM ๋ณต์ก๋ ์ฆ๊ฐ์ ๋ฐ๋ฅธ ์ต์ ํ ๋ฐ ์ ์ง ๋ณด์๊ฐ ์ด๋ ค์์ง๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ์ ์ด๋ค.
์ฆ, DOM์ ๋ฐ๋ณต์ ์ผ๋ก ์ง์ ์กฐ์ํ๋ฉด ๊ทธ๋งํผ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ ๋๋ง์ ์์ฃผํ๊ฒ ๋๊ณ , ๊ทธ๋งํผ pc ์์์ ๋ง์ด ์๋ชจํ๊ฒ ๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ์ ์ด๋ผ๊ณ ์ ๋ฆฌํ ์ ์๋ค.
react์ ๊ฒฝ์ฐ ๋ณํ๋ฅผ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ์ผ๋ก observable์ ์ฌ์ฉํ๋ค. ์ฆ state์ ๋ณํ๊ฐ ์๊ฒผ์ ๋ ๋ฆฌ์กํธ์๊ฒ ๋ ๋๋ง์ ํด์ผํ๋ค๋ ๊ฒ์ ์๋ ค์ฃผ๋ ๋ฐฉ์์ด๋ค. ์ด๋ฐ observable ๋ฐฉ์์ ๋ณํ์ ๋ํ ์๋ฆผ์ ๋ฐ์ผ๋ฉด ์ ์ฒด๋ฅผ ๋ ๋๋งํ๊ณ , ์ด๋ ๋ง์ reflow-repaint ๋น์ฉ์ ๋ฐ์์ํจ๋ค.
์ด๋ ๊ธฐ ๋๋ฌธ์ react๋ Virtual DOM์ ์ฌ์ฉํด ํน์ state์ ๋ณํ๊ฐ ์๊ธฐ๋ฉด Real DOM ์ ์ฒด๋ฅผ ๋ ๋๋งํด์ฃผ๋ ๊ฒ์ด ์๋๋ผ Virtual DOM์ ๋ ๋๋งํ๋ค.
์ฆ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ ๋์ด ์ํค๋ ๋น์ฉ VS ๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋๋ ๋น์ฉ์ด๊ธฐ ๋๋ฌธ์ Virtual DOM์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ถฉ๋ถํ ํจ์จ์ ์ด๋ค๋ผ๊ณ ํ ์ ์๋ค.
๊ธ ์ฝ๊ฒ ์ค๋ช ํด์ฃผ์ ์ ์ ์ฝ์์ต๋๋ค!