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 ์ ๊ดํด ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ์์ฃผ ๊ฐ๋จํ ์, ๋ฌด์์ด, ๊ทธ๋์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋๊ฐ์ ๋ํด์ ๋ค์ ๋ฌธ์ฅ์ผ๋ก ์ ๋ฆฌํ๋๋ก ํ๊ฒ ๋ค.(๊ฐ๋ ์ด ์ด๋ ต๋ค. ์ดํด๋ง ํ๊ณ ๋์ด๊ฐ๋ ์ชฝ์ผ๋ก ํ์.)