์คํฐ๋ ์ฒซ์ฃผ์ฐจ๋ ๋ฆฌ์กํธ๊ฐ ์๋ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ํฌ๋๋ฆฌ์คํธ๋ฅผ ๋ง๋๋ ๊ณผ์ ์์ต๋๋ค.
๋ฐฐํฌ๋์ด ์๋ ์ ๋ฐ๋๋ผ ํฌ๋ ํ์ด์ง์ ๋ค์ด๊ฐ์ ๋ ๊ฐ๋ฐ์๋๊ตฌ์ ๋คํธ์ํฌ ํญ์ ๋๋ค.
IP..DNS.. ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ ํด์ ์น์ฌ์ดํธ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ํ์ผ์ ๋ฐ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฐ ์๋ฃ๋ค์ ์์ฒญํ๊ธฐ ์ํด์ HTTP (Hyper Text Transfer Protocol)๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค.
์ด๋จธ์ด๋จธ. HTML์ Hyper Text Markup Language์ ์ฝ์๋๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ธ๋ผ์ฐ์ ๋ HTTP๋ฅผ ํตํด ์๋ฒ์์ html๊ณผ ๊ฐ์ ๊ฒ๋ค์ ์ ์ก๋ฐ์ ์ฐ๋ฆฌ์๊ฒ ๋ณด์ฌ์ฃผ๋๊ฑฐ๊ตฐ์.
๋ธ๋ผ์ฐ์ ๋ ๋๋ง
html ๋ฌธ์๋ ๋ฉ๋ชจ์ฅ์ผ๋ก๋ ๋ง๋ค ์ ์๋, ๊ทธ๋ฅ ๋ฌธ์์ ๋ถ๊ณผํฉ๋๋ค. ์ด๋ป๊ฒ ์์๊ฐ์ด ์ด์ ๋ชจ์ต์ผ๋ก ํ๋ฉด์ ๋ ๋๋ง๋๋๊ฑธ๊น์.
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง์ ์ด๋ฐ ๊ณผ์ ์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค. ๋ ๋๋ง์์ง์ด HTMLํ์ผ์ ๊ฐ ํ๊ทธ (<div></div> ๊ฐ์ ํ๊ทธ ๋งํ๋๊ฑฐ์์)๋ฅผ ๋ ธ๋๋ก ๋ง๋ค๊ณ , ๊ฐ ๋ ธ๋๋ค์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ฐ๊ฒฐํฉ๋๋ค. ์กํ์ธ ๋ ํ์ฑํธ๋ฆฌ ์ฃผ๊ตฌ์ฅ์ฐฝ ๊ทธ๋ ธ๋ ๊ธฐ์ต์ด ๋๋๊ตฐ์. ๊ทธ๊ฑธ Dom Tree๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
CSS ํ์ผ๋ ๋น์ทํ ๊ณผ์ ์ ํตํด CSSOM์ด๋ผ๋ ํธ๋ฆฌ๋ก ๋ง๋ค์ด์ง๊ณ , ๋ ํธ๋ฆฌ๋ฅผ ํฉ์น๋ฉด ๋ ๋๋ง์ ์ํ ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด์ง๋๊ฑฐ์ฃ !! ๋ง์ง๋ง์ผ๋ก ๋ ๋ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ๊ฐ์ฒด์ ์ ํํ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐ(flow)ํ๊ณ , ๊ณ์ฐํ๋๋ก ์ค์ ๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ณผ์ (paint)์ผ๋ก ๋๋๊ฒ ๋ฉ๋๋ค.
๋ง์ฝ ํฌ๋๋ฆฌ์คํธ์ ์ ํฌ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ํ ๊ธ์ ํ๊ฒ ๋๋ฉด (DOM์ ๋ณํ๋ฅผ ์ฃผ๋ฉด) ๋ ๋ํธ๋ฆฌ๋ ๋ค์ ๋ง๋ค์ด์ผ ํ๊ณ , ๊ณ์ฐ๋ ๋ค์, ํ์ธํ ๋ ๋ค์ ํด์ผํฉ๋๋ค. ์ด๋ฌํ reflow์ repaint ๊ณผ์ ์ ๊ฝค ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํฉ๋๋ค.
๋ง์ฝ์ DOM์์ ๋ง์ ๋ถ๋ถ์ด ๋ฐ๋๊ฒ ๋๋ฉด, reflow์ repaint๋ ์ฌ๋ฌ๋ฒ ์ผ์ด๋๊ฒ ์ฃ ?? ์ด๋ฌํ ์ฐ์ฐ์ ์ค์ฌ ์นํ์ด์ง์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค. Reflow,repaint๊ฐ ๋ฐ์ํ๋ css ์์ฑ ํผํ๊ธฐ, style ํธ์ถ์ด ์๋ ํด๋์ค๋ฅผ ์ด์ฉํด ์คํ์ผ ๋ณ๊ฒฝํ๊ธฐ.. ๋ญ ์ด๋ฐ๊ฑธ๋ก ํด๋ณผ ์ ์๋ค๊ณ ํฉ๋๋ค.
virtual DOM
ํ์ง๋ง ํ๋ฉด์ด ์ ๋ฐ์ดํธ ๋ ๋๋ง๋ค ํธ๋ฆฌ๋ฅผ ๋ค์ ์์ฑํ๊ณ ๊ทธ๋ฆฌ๋๊ฒ ์๋, ๋ฑ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์ฐพ์์ ์ ๋ฐ์ดํธํด์ค ์ ์๋ค๋ฉด ์ด๋จ๊น์?? ๊ฐ์์ DOM์ ํ๋ ๋๊ณ , ๊ทธ๊ฑธ ์์ ํ๋๊ฒ๋๋ค. ์ฌ๋ฌ ๋์์ ๋ํ ์ฐ์ฐ์ ๋๋ธ ํ์, ์ค์ DOM์ ์ ์ฉ์์ผ์ค๋๋ค. ๋ค๋ง, ์ ๋ฐ์ดํธ๋ ๊ฐ์์ Dom๊ณผ ์ค์ DOM์ ๋น๊ตํด์ ๋ณํ๊ฐ ํ์ํ ๊ณณ๋ง ์๋ก ๋ ๋๋งํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด flow์ paint๋ฅผ ํ๋ ํ์๋ ์ค์ด๋ค๊ฒ ์ฃ .
์ด๋ฌํ ๊ณผ์ ์ ๋ฆฌ์กํธ๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ค์์ฃผ๋ถํฐ๋ ๋ฆฌ์กํธ๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ํด๋ด ์๋ค. Vitual DOM์ ์ฌ์ฉํ ์ดํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ์ต์ ํ ์ด์ธ์ ์ด๋ค ์ฅ์ ์ด ์๋์ง ์ ์ ์์๊ฑฐ์์!!