Virtual DOM
1. Virtual DOM ์ด๋?
๊ฐ์์ DOM, ์ค์ DOM์ ์ฌ๋ณธ ๊ฐ์ ๊ฐ๋
React๋ ์ค์ DOM ๊ฐ์ฒด์ ์ ๊ทผํด ์กฐ์ํ๋ ๋์ , ๊ฐ์ DOM ๊ฐ์ฒด์ ์ ๊ทผํด ๋ณํ ์ ๊ณผ ํ๋ฅผ ๋น๊ตํด ๋ฐ๋ ๋ถ๋ถ๋ง ์ ์ฉ
์ฆ, Javascript ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ DOM ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํด, ์ค์ DOM ์กฐ์์ ์ต์ํํ๊ณ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๊ธฐ์
2. Virtual DOM์ ํํ
์ค์ DOM๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ DOM ๋ํ HTML ๋ฌธ์ ๊ฐ์ฒด ๊ธฐ๋ฐ
์ถ์ํ๋ง ๋์์ ๋ฟ ํ๋ฒํ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด
๋ฐ๋ผ์ ์ค์ DOM์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ ํ์ํ ๋งํผ ์์ ๋กญ๊ฒ ์กฐ์ ๊ฐ๋ฅ
๋ฆฌ์กํธ์์ ์ปดํฌ๋ํธ์ ์ํ๋ ์์ฑ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋ก ์์ฑ
๋ฆฌ์กํธ๋ ์ด์ ๊ฐ์ DOM๊ณผ ์๋ก์ด ๊ฐ์ DOM์ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์ค์ DOM์ ๋ฐ์
3. Virtual DOM์ ๋์ ๊ณผ์
๋น๊ต ๊ณผ์ ์์ React๋ Diffing ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ๋ถ๋ถ์ ๊ฐ์ง
Diffing ์๊ณ ๋ฆฌ์ฆ์์ ์ด๋ฅผ ๊ฐ์งํ ์ ์๋๋ก ์ง์ ํ ๋น์ด ์๋ setState์ ๊ฐ์ method๋ฅผ ํ์ฉํด ์ํ๋ฅผ ๋ณ๊ฒฝ
๊ฐ์ DOM๊ณผ ๋ณ๊ฒฝ๋ ์๋ก์ด ๊ฐ์ DOM์ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ์ด ํ์ํ ๋ถ๋ถ๋ง ์ค์ DOM์ ๋ฐ์ํ์ฌ ์ ๋ฐ์ดํธ โ ์ฌ์กฐ์ (Reconciliation)
์ฌ๋ฌ ๊ฐ์ ์ํ ๋ณํ๊ฐ ์์ ๊ฒฝ์ฐ ์ผ๊ด์ ์ผ๋ก ํ ๋ฒ์ ์ ๋ฐ์ดํธ(Batch Update)
์ด๋ฅผ ํตํด ์ฑ๋ฅ์ ์ต์ ํํ๊ณ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ์ต์ํํจ.
4. Virtual DOM์ ๋น ๋ฅด๋ค?
๊ฐ์ DOM์ ์ผ๋ฐ์ ์ผ๋ก ์ค์ DOM์ ์ง์ ์กฐ์ํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด์ง๋ง, ๋ชจ๋ ๊ฒฝ์ฐ์ ๊ทธ๋ ์ง๋ ์์.
๋๋ก๋ ์ง์ DOM์ ์กฐ์ํ๋ ๊ฒ์ด ๋ ๋น ๋ฅผ ์ ์์.
Last updated