๐กย JSX๋ ??
โ JavaScrip Xml์ ์ฝ์๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ ๋ฌธ๋ฒ.
๋ฆฌ์กํธ์์๋ virtual DOM์ ๋ค๋ฃจ๊ณ ์๊ธฐ ๋๋ฌธ์ html์ ๊ฐ์ฅํ JSX๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค
JSX๋ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ๊ณผ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ๋ฐ๋๊ฒ๋๋ค.
๋ฆฌ์กํธ์์์ html.
virtual Dom?
Virtual DOM (VDOM)์ UI์ ์ด์์ ์ธ ๋๋ โ๊ฐ์โ์ ์ธ ํํ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ReactDOM๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด โ์ค์ โ DOM๊ณผ ๋๊ธฐํํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ -- ์ถ์ฒ react docs
๋ฌด์จ๋ง์ธ์ง ์ดํด๊ฐ ์ ๊ฐ์ง ์์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐพ์๋ณด์๋ค.
DOM์ ๋ณํ์๊ธฐ๋ฉด, ๋ ๋ํธ๋ฆฌ๋ฅผ ์ฌ์์ฑํ๊ณ (๊ทธ๋ฌ๋ฉด ๋ชจ๋ ์์๋ค์ ์คํ์ผ์ด ๋ค์ ๊ณ์ฐ๋ฉ๋๋ค) ๋ ์ด์์์ ๋ง๋ค๊ณ ํ์ธํ ์ ํ๋ ๊ณผ์ ์ด ๋ค์ ๋ฐ๋ณต๋๋๊ฑฐ์ฃ .
๋ณต์กํ SPA(์ฑ๊ธ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ) ์์๋ DOM ์กฐ์์ด ๋ง์ด ๋ฐ์ํด์. ๊ทธ ๋ป์ ๊ทธ ๋ณํ๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ง์ด ์ฐ์ฐ์ ํด์ผํ๋จ ์๋ฆฌ๊ณ , ์ ์ฒด์ ์ธ ํ๋ก์ธ์ค๋ฅผ ๋นํจ์จ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
์, ์ด ์ด๋ถ๋ถ์์ Virtual DOM ์ด ๋น์ ๋ฐํฉ๋๋ค! ๋ง์ฝ์ ๋ทฐ์ ๋ณํ๊ฐ ์๋ค๋ฉด, ๊ทธ ๋ณํ๋ ์ค์ DOM ์ ์ ์ฉ๋๊ธฐ์ ์ ๊ฐ์์ DOM ์ ๋จผ์ ์ ์ฉ์ํค๊ณ ๊ทธ ์ต์ข ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ค์ DOM ์ผ๋ก ์ ๋ฌํด์ค๋๋ค. ์ด๋ก์จ, ๋ธ๋ผ์ฐ์ ๋ด์์ ๋ฐ์ํ๋ ์ฐ์ฐ์ ์์ ์ค์ด๋ฉด์ ์ฑ๋ฅ์ด ๊ฐ์ ๋๋ ๊ฒ ์ด์ง์.
์ถ์ฒ: https://velopert.com/3236
๋จผ์ ํด๋น ๋ธ๋ก๊ทธ์์๋ ๋จผ์ ๋ธ๋ผ์ฐ์ ์ ์๋๋ฐฉ์์ ๋ํด ์ค๋ช ํ์๋ค.
๋ธ๋ผ์ฐ์ ์์ HTML์ ์ ๋ฌ๋ฐ์ผ๋ฉด ๋ธ๋ผ์ฐ์ ์ ๋ ๋์์ง์ด ์ด๋ฅผ ๋ถ์(ํ์ฑ)ํ๊ณ DOMํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
๊ทธ๋ฆฌ๊ณ CSSํ์ผ๊ณผ ์๋ฆฌ๋จผํธ์ inline์คํ์ผ์ ํ์ฑํด ๊ทธ ์ ๋ณด์๋ฐ๋ผ ์๋ก์ด ๋๋ํธ๋ฆฌ ๋ผ๋๊ฒ์ ๋ง๋ค๊ณ , ์ด ๊ณผ์ ์์ ๊ฐ ์์์ ์คํ์ผ์ด ๊ณ์ฐ๋๋ฉด์ ์ด ๊ณผ์ ์์ ๋ค๋ฅธ ์์๋ค์ ์คํ์ผ ์์ฑ์ ์ฐธ์กฐํ๋ค.
๋ ๋ํธ๋ฆฌ๊ฐ ๋ค ๋ง๋ค์ด์ง๊ณ ๋๋ฉด ๋ ์ด์์(reflow๋ผ๊ณ ๋ ํจ)๊ณผ์ ์ ๊ฑฐ์น๋ฉฐ ๊ฐ ์คํฌ๋ฆฐ ์ขํ๊ฐ ๊ทธ๋ ค์ง๊ณ ์ด๋์ ๊ทธ๋ ค์ ธ์ผํ๋์ง ์์น๊ฐ ์ฃผ์ด์ง๋ค.
๊ทธ ๋ค์ ์์ ์ ํ๋ painting๊ณผ์ ์ด ์ผ์ด๋๋๋ฐ, ์ด๋ DOM๋ณํ๊ฐ ์๊ธฐ๋ฉด ๋ ๋ํธ๋ฆฌ๋ฅผ ์ฌ์์ฑํ๋ฉด์ ๋ ์ด์์์ ๋ง๋ค๊ณ ํ์ธํ ํ๋๊ณผ์ ์ด ๋ค์ ์ผ์ด๋๋ค.
Virtual DOM์, ๋ทฐ์ ๋ณํ๊ฐ ์๋ค๋ฉด ์ค์ DOM์ ์ ์ฉ๋๊ธฐ ์ ์ ๊ฐ์์ DOM์ ๋จผ์ ์ ์ฉ์ํค๊ณ , ์ต์ข ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ค์ DOM์ผ๋ก ์ ๋ฌํด์ฃผ๊ธฐ์ ๋ธ๋ผ์ฐ์ ์ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์๋ค.
๊ธฐ์กด๊ณผ ์ด๋ค๊ฒ ๋ฐ๋์๊ณ , ์ด๋ค๊ฒ ๋ฐ๋์ง ์์๋์ง ์๋ํํ์ฌ ์ฐ๋ฆฌ๊ฐํ์
ํ์ง ์์๋ ๋๋ค๋ ๊ฒ์ด ๋ํ ์ฅ์ .
(๊ฐ ๋ณํ๋ค์ ๋๊ธฐํ ์์
์ ๊ฑฐ์น์ง ์์ผ๋ฉด์ ๋ชจ๋ ์์
์ ํ๋๋ก ๋ฌถ์ด์ค ์ ์๋ค.)
์ ๋ฆฌ: JSX๋ ๋ฆฌ์ํธ ์ ์ฉ HTML์ด๋ผ๊ณ ํ ์ ์์.
virtual DOM: DOM์ ์ถ์ํํ์ฌ ๋ํ๋ธ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ง๋ค์ด ๋๋๊ฒ์ ์๋ฏธ,
์ด ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ์นํ์ด์ง ๊ตฌ์ฑ์์๋ฅผ ์ ์ดํ ์ ์์. DOM ๋ฐ๋ณต ์กฐ์์ ์ํ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๋ฌธ์ ๋ฑ์ ํด๊ฒฐํ๊ธฐ์ํ ๊ธฐ์ .