์ฝ๋๋ฅผ ์์ฑํ ๋ ์ํ์ ๋ฐ๋ผ ๋งค๋ฒ DOM์ ์ ๋ฐ์ดํธ ํ๋ ๊ฒ์ ์ฝ๋๊ฐ ๋์กํด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๋ค๋ ๋จ์ ์ด ์์๋ค.
์ด๋๋ , " ์ํ๊ฐ ๋ฐ๋ ๋๋ง๋ค ๋งค๋ฒ DOM์ ์ ๋ฐ์ดํธ ํ์ง๋ง๊ณ , ์์ ๋ค ๋ ๋ ค๋ฒ๋ฆฌ๊ณ ์๋ก ๋ง๋ค์ด์ ๋ณด์ฌ์ฃผ๋๊ฑด ์ด๋จ๊น? " ํ๋ ๋ฐ์๊ณผ ํจ๊ป ๋ฆฌ์กํธ๊ฐ ์์๋์๋ค.
๋ฆฌ์กํธ์๋ ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์๋ง ์กด์ฌํ๋ Virtual DOM์ ์ฌ์ฉํ์ฌ, ์๋ ํฅ์๊น์ง ๋ํ๋ค.
๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์์ผ๋ก ์กด์ฌํ๋ DOM์ผ๋ก์ JS์ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ์๋ ์ฑ๋ฅ์ด ์ค์ ๋ธ๋ผ์ฐ์ ์์ DOM์ ๋ณด์ฌ์ฃผ๋ ๊ฒ๋ณด๋ค ์๋๊ฐ ํจ์ฌ ๋น ๋ฅด๊ณ , ํ๋ฉด์ ์ ๋ฐ์ดํธ ํ๋๋ฐ ์ต์ ํ ๋์ด์๋ค.
์ปดํจํฐ๊ฐ ํ์ฌ ์คํ ์ค์ธ OS( ์ด์์ฒด์ )์ ๋ณ๊ฐ๋ก ํ๋ก๊ทธ๋จ์ ์ํ ์ํํธ์จ์ด ์์คํ ์ ์ ๊ณตํ๋ ๊ฐ์๋จธ์ ์ด๋ค.
๊ฐ์๋จธ์ ์ ํ๋์ ์ปดํจํฐ๋ก ์ฌ๋ฌ๊ฐ์ OS๋ฅผ ์คํํ๊ธฐ ์ํ ์ํํธ์จ์ด์ด๋ค.
๊ทธ๋ฌ๋ฉด, ์ฐ๋ฆฌ๋ ์ React๋ฅผ Node.js์์ ์คํ์์ผ์ผ ํ๋๊ฐ?
Node.js๋ฅผ ์ค์นํ ๋ npm( node package manager) ์ด๋ผ๋ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ด ์ค์น๋๋ค. npm์ ์์ดํฐ์ "App Store"์ฒ๋ผ ๊ฐ๋ฐ์๋ค์ "npm"์ด๋ผ ํ ์ ์๋ค. npm์ ํจํค์ง๋ฅผ ์ค์น, ์ ๋ฐ์ดํธ, ์ญ์ ํ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๋ค์ด ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๊ฒ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ์ ์๋๋ก ๋์์ค๋ค.
๋ฐ๋ผ์, ์ด๋ฌํ npm์ ๋ฆฌ์กํธ ํ๋ก๊ทธ๋จ์ ๋์์ ์ค ์ ์๋ ์นํฉ ๋ฑ๊ณผ ๊ฐ์ ๋ฒ๋ค๋ฌ๋ฅผ ํตํด ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ข๊ฒ ๋ง๋ค์ด ์ฃผ๋ฉฐ Node.js ๋ฐํ์์์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ React๋ฅผ Node.js์์ ์คํ์ํค๋ ๊ฒ์ด๋ค.
์ปดํฌ๋ํธ๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ ํจ์ํํ๋ก ์์ฑ ํ ์๋ ์๊ณ ํด๋์คํํ๋ก๋ ์์ฑ ํ ์ ์์ง๋ง ํจ์ํํ๋ก ์์ฑํ๋ ๊ฒ์ด ๋ณดํธ์ ์ด๋ค. ์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ(props)๋ฅผ ์ ๋ ฅ๋ฐ์ View์ํ์ ๋ฐ๋ผ DOM Node๋ฅผ ์ถ๋ ฅํ๋ค.