react ์คํฐ๋์์ ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ์ด๋ผ๋ ์ฑ
์ ์ ์ ํ๊ณ ์ด ์ฑ
์ ์ฝ๊ณ ๋ฐฐ์ด ๊ฒ์ ๋ฐํ์ผ๋ก ์์ฑ๋์๋ค.
๐ ๋ฆฌ์กํธ ์ดํด
- ๋ฆฌ์กํธ๋
MVC
๋ MVW
์ํคํ
์ฒ๋ฅผ ์ฌ์ฉํ๋ ํ๋ ์์ํฌ์ ๋ฌ๋ฆฌ, ์ค์ง V(View)
๋ง ์ ๊ฒฝ์ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
- ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋๋ง๋ค ๋ทฐ์ ์ด๋ค ๋ณํ๋ฅผ ์ค์ง ๊ณ ๋ฏผํ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด ๋ทฐ๋ฅผ ๋ ๋ ค ๋ฒ๋ฆฌ๊ณ ์ฒ์๋ถํฐ ์๋ก ๋ ๋๋งํ๋ค.
- ์ปดํฌ๋ํธ: ๋ ๋๋งํ React ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐํํ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ธ์ฒด์ด๋ค.
- ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ API๋ก ์๋ง์ ๊ธฐ๋ฅ๋ค์ ๋ด์ฅํ๊ณ ์์ผ๋ฉฐ, ์ปดํฌ๋ํธ ํ๋์ ์๊น์์ ์๋ ๋ฐฉ์์ ์ ์ํ๋ค.
- ๋ ๋๋ง: ์ฌ์ฉ์ ํ๋ฉด์ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ (์ด๊ธฐ ๋ ๋๋ง / ์กฐํ ๊ณผ์ )
render ํจ์
- ์ปดํฌ๋ํธ๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ์ ์ํ๋ค.
- html ํ์์ ๋ฌธ์์ด์ ๋ฐํํ์ง ์๊ณ ๋ทฐ๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๊ณ ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ง๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
- ์ปดํฌ๋ํธ ๋ด๋ถ์๋ ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ๋ค์ด๊ฐ ์ ์๋ค. ์ด๋
render()
๋ฅผ ์คํํ๋ฉด ๊ทธ ๋ด๋ถ์ ์๋ ์ปดํฌ๋ํธ๋ค๋ ์ฌ๊ท์ ์ผ๋ก ๋ ๋๋งํ๋ค.
- ์ต์์ ์ปดํฌ๋ํธ์ ๋ ๋๋ง ์์
์ด ๋๋๋ฉด ๋ฐํ๋ ์ ๋ณด๋ค์ ์ฌ์ฉํ์ฌ
HTML ๋งํฌ์
์ ๋ง๋ค๊ณ , ์ค์ ํ์ด์ง์ DOM
์์ ์์ ์ฃผ์
ํ๋ค. (์ด๊ธฐ ๋ ๋๋ง)
๐ Virtual DOM
DOM
(Document Object Model)
- HTML, XML ๋ฌธ์์ ๊ฐ ์์๋ค์ ๊ณ์ธต์ ์ผ๋ก ํํํ์ฌ ๋ฌธ์ ๋ด ์์๋ค์ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ํ ์ ์๋๋ก ๋๋ ์ธํฐํ์ด์ค
DOM
์ ๊ณผ์ฐ ๋๋ฆด๊น?
- DOM ์์ฒด๋ ๋น ๋ฅด๋ค. DOM ์์ฒด๋ฅผ ์ฝ๊ณ ์ธ ๋์ ์ฑ๋ฅ์ ๋น ๋ฅด๋ค.
- ํ์ง๋ง ์น ๋ธ๋ผ์ฐ์ ๋จ์์ DOM์ ๋ณํ(์
๋ฐ์ดํธ)๊ฐ ์ผ์ด๋๋ฉด ์น ๋ธ๋ผ์ฐ์ ๊ฐ CSS๋ฅผ ๋ค์ ์ฐ์ฐํ๊ณ , ๋ ์ด์์์ ๊ตฌ์ฑํ๊ณ , ํ์ด์ง๋ฅผ ๋ฆฌํ์ธํธํ๋ค. (์๊ฐ ์๋ชจ๊ฐ ํฌ๋ค)
- DOM์ ์กฐ์ํ ๋๋ง๋ค ์์ง์ด ์นํ์ด์ง๋ฅผ ์๋ก ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์
๋ฐ์ดํธ๊ฐ ๋๋ฌด ์ฆ์ผ๋ฉด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
ํด๊ฒฐ๋ฒ : DOM
์ ์ต์ํ์ผ๋ก ์กฐ์ํ๋ค!
Virtual DOM
์ ์ด์ฉํ์ฌ DOM ์
๋ฐ์ดํธ๋ฅผ ์ถ์ํํจ์ผ๋ก์จ DOM ์ฒ๋ฆฌ ํ์๋ฅผ ์ต์ํํ๊ณ ํจ์จ์ ์ผ๋ก ์งํํ๋ค.
Virtual DOM
์ ์ฌ์ฉํ๋ฉด ์ค์ DOM์ ์ ๊ทผํ์ฌ ์กฐ์ํ๋ ๋์ , ์ด๋ฅผ ์ถ์ํํ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ์ฌ ์ฌ์ฉํ๋ค. (์ค์ DOM๋ณด๋ค ๊ฐ๋ฒผ์ด ์ฌ๋ณธ)
- ๋ฆฌ์กํธ์์ ๋ทฐ๋ฅผ ์
๋ฐ์ดํธํ ๋ "์
๋ฐ์ดํธ ๊ณผ์ ์ ๊ฑฐ์น๋ค"๋ผ๊ณ ํ๊ธฐ๋ณด๋ค๋ "์กฐํ(
reconciliation
)๊ณผ์ ์ ๊ฑฐ์น๋ค"๋ผ๊ณ ํ๋ ๊ฒ์ด ์ ํํ ํํ์ด๋ค.
- ์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธ ํ์ ๋, ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ
render()
๋ฅผ ํธ์ถํ๋ค.
- ํ์ง๋ง ์ด๋ ๋ฐํ๋ ๊ฒฐ๊ณผ๊ฐ ๊ณง๋ฐ๋ก ์ค์ DOM์ ๋ฐ์ํ์ง ์๋๋ค.
- ๋ฐ์ดํฐ๊ฐ ์
๋ฐ์ดํธ๋๋ฉด, ์ ์ฒด UI๋ฅผ
Virtual DOM
์ ๋ฆฌ๋ ๋๋ง ํ๋ค.
- ์ด์
Virtual DOM
์ ์๋ ๋ด์ฉ๊ณผ ํ์ฌ ๋ด์ฉ์ ๋น๊ตํ๋ค.
- ๋ฐ๋ ๋ถ๋ถ๋ง ์ค์
DOM
์ ์ ์ฉํ๋ค.
๐ก ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ณํํ๋ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์
ํจ์จ์ ์ผ๋ก ๊ตฌ์ถํ๊ธฐ ์ํด React
ํ์
๐ก React
์ Virtual DOM
์ด ์ ๊ณตํ ์ ์๋ ๊ฒ์ View ์
๋ฐ์ดํธ ์ฒ๋ฆฌ ๊ฐ๊ฒฐ์ฑ์ด๋ค.
๊ด๋ จ ์์: React and the Virtual DOM