Node.js๋ React๋ฅผ ์ฌ์ฉํ๊ธฐ ๋ ์ฝ๊ฒ ํด์ฃผ๋ ๋๊ตฌ๋ค์ ๋ด์ฅํ๊ณ ์๋ ์คํ์์ค์ด์
JavaScript runtime environment(์คํ ํ๊ฒฝ)์ด๋ค.
(*runtime : ํน์ ์ธ์ด๋ก ๋ง๋ ํ๋ก๊ทธ๋จ๋ค์ ์คํํ ์ ์๋ ํ๊ฒฝ)
React ๊ฐ๋ฐ์ ์ฒ์ ์์ํ ๋, Node.js ๋ฅผ ํจ๊ป ์ค์นํ๋ค.
Node.js๋ ๋ฌด์์ด๊ธฐ์ ํญ์ react์ ๊ฐ์ด ๋ฐ๋ผ๋ค๋๋ ๊ฑธ๊น?
๊ฒฐ๋ก ์ ์ผ๋ก ๋งํ๋ฉด, React ๊ฐ๋ฐ์, Node.js๊ฐ ํ์์ ์ธ ๊ฒ์ ์๋๋ค.
์ฆ, node.js ์์ด๋ React๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค!
๊ทธ๋๋ Node.js๋ฅผ ์ค์นํ๋ ๋ฐ ์ด์ ๋ ์๋ ๋ฒ!
๋งจ ์ฒ์์ ์ธ๊ธ๋ ํ๋ค.
์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ณด์
1๏ธโฃ Node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ HTML์ ์ข ์๋์ด ์๋ ์ธ์ด์ด๋ฉฐ, HTML ์กฐ์๊ณผ ๋ณ๊ฒฝ์ ์ํด ์ฌ์ฉํ๋ค.
์ ์ ์ธ์ด์ธ HTML์ ์กฐ์ํ์ฌ ์นํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ธฐ๋ฅ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํ ์ ์๋ค.
HTML์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํด์ํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํด์ํ๋ค.
๋ธ๋ผ์ฐ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๊ธฐ ๋๋ฌธ์ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ์์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์์๋ค.
ํ์ง๋ง 2008๋ ์ ๊ตฌ๊ธ์ด V8 ์์ง์ ์ฌ์ฉํ์ฌ ํฌ๋กฌ์ ์ถ์ํ ์ดํ, V8 ์์ง์ ๊ธฐ๋ฅ์ ๋ํด ๋ ธ๋ ํ๋ก์ ํธ๋ฅผ ์์ํ์ผ๋ฉฐ, Node.js(V8)์ด ๋ฑ์ฅํ์๋ค. Node.js๋ ๋ธ๋ผ์ฐ์ ๋ง๊ณ ๋ ๋ค๋ฅธ ํ๊ฒฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.
๋ฐ๋ผ์ Node.js๋ฅผ ์ค์นํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ฅผ ํค์ง ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ปดํจํฐ์์ ์ํํ ์ ์๋ค.
2๏ธโฃ NPM(Node Package Manager)์ ์ฌ์ฉํ๊ธฐ ์ํด
NPM(Node Package Manager)์ ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ๋งค๋์ ์ด๋ค. NPM์ React ๊ฐ๋ฐ์ ํ์ํ Node.js์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋๋ค์ ํจํค์งํํ์ฌ ๋ชจ์๋ ์ ์ฅ์ ์ญํ ๊ณผ ํจํค์ง ์ค์น ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ CLI(Command Line Interface)๋ฅผ ์ ๊ณตํ๋ค.
npm์ ์ฌ์ฉํ๋ฉด ์ ์ธ๊ณ์ ๊ฐ๋ฐ์๋ค์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ ๋ค์ํ ํจํค์ง๋ฅผ npm ์จ๋ผ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ๋ฆฌ๊ณ ์ฌ์ฉ์๋ ๊ทธ๊ฒ์ npm๊ณผ ๊ฐ์ ํจํค์ง ๋งค๋์ ๋ฅผ ํตํด ์ค์น ๋ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
React๋ฅผ ์ฌ์ฉํ ๊ฐ๋ฐ์์ ์ ๋ฌํ ํจํค์ง๊ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ npm์ ์ฌ์ฉํ๋ฉด ์ข๋ค.
์ด๋ฌํ npm์ Node.js๋ฅผ ์ค์นํ ๋ ํจ๊ป ์ค์น๋๊ธฐ ๋๋ฌธ์ Node.js๋ฅผ ์ค์นํ๋ ์ด์ ์ด๊ธฐ๋ ํ๊ณ npm์ CLI๋ก ์คํ์ํค๊ณ ์ถ๋ค๋ฉด Node.js๊ฐ ํ์ํ๋ค.
2๏ธโฃ JSX๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด
npm์ด ํ์ํ๋ฉด npm๋ง ์ค์นํ๋ฉด ๋์ง ์ Node.js๋ฅผ ์ค์นํ๋ ๊ฑด๋ฐ?
Node.js๊ฐ ์์ผ๋ฉด ๋ฐ๋ฒจ(Babel)์ด๋ผ๋ ์ปดํ์ผ๋ฌ ๋๊ตฌ๋ฅผ ์ถ๊ฐ๋ก ๋ค์ด๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋์ ์ JSX๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค!
JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ์ด๋ค.
์ฌ์ค ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ๊ฐ๋ฐ์ ํ๋ฉด ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์๊ฐ ํ๋ค์ด์ง๋๋ฐ, JSX๋ฅผ ์ด์ฉํ๋ฉด ์ฐ๋ฆฌ์๊ฒ ์ต์ํ html ์ฝ๋๋ก ๊ฐ๋ฐํ์ฌ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ํด์ค ์ ์๋ค.
JSX ์ฌ์ฉ์ ์ํด์ ๋ฐ๋ฒจ์ ํ์!
JSX ๋ฌธ๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ํด์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ฒจ์ ์ด์ฉํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํํด์ผ ํ๋ค. ๋ํ, ์๋ฐ์คํฌ๋ฆฝํธ es6(ECMAScript)๋ฌธ๋ฒ์ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋๋ก ํ๊ธฐ ์ํด์ ํ์๋ฒ์ (es5)์ ์ฝ๋๋ก ๋ณ๊ฒฝ์์ผ์ผ ํ๋๋ฐ ์ด๋ babel์ด ์ฌ์ฉ๋๋ค.
Node.js๊ฐ ์์ผ๋ฉด Babel์ ์ถ๊ฐ๋ก ๋ค์ด๋ฐ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฐ ์ด์ ๋ก Node.js๋ฅผ ์ค์นํ๋ ๊ฒ์ด๋ค.
์ฐธ๊ณ
https://velog.io/@remon/%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D-Node.js%EB%9E%80
[๊ฐ๋ฐ ๊ธฐ๋ณธ ์ง์] Node.js๋?
"Node.js๋ Chrome V8 JavaScript ์์ง์ผ๋ก ๋น๋๋ JavaScript ๋ฐํ์์ ๋๋ค" ?? ๐ค๊ทธ๋์ ๋ญ๋ฐ์?
velog.io
https://chucoding.tistory.com/86
React ๊ฐ๋ฐ์ ์ Node.js๊ฐ ํ์ํ ๊น??
๊ตฌ๊ธ์ React๋ฅผ ๊ฒ์ํ๋ฉด ํญ์ Node.js๊ฐ ๋ถ์ด๋ค๋๋ ๊ด๊ฒฝ์ ๋ชฉ๊ฒฉํ ์ ์์ต๋๋ค. React๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ฐ๋ฐํ๊ธฐ๋ ์๊ฐ์ด ์ด๋ฐํ๋ฐ Node.js๊น์ง ๊ณต๋ถ๋ฅผ ํด์ผํ๋์ง ์๋ฌธ์ด ๋ง์ด ๋ค ๊ฒ์ ๋๋ค. ๋๋์ฒด Rea
chucoding.tistory.com
'FE > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ๋ชจ๋ ๋ฆฌ์กํธ ๋ฅ๋ค์ด๋ธ 4. ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ์ฃผ์ ์ ๋ฆฌ (0) | 2024.05.30 |
---|---|
[React] SPA, CSR์ ๊ฐ์๊น ๋ค๋ฅผ๊น (0) | 2024.05.30 |
ํ์ด์ง ์ด๋ ์ ์คํฌ๋กค ์์น ํญ์ ์์ ๊ณ ์ ์ํค๊ธฐ (0) | 2024.02.17 |