October 19, 2020
์๋ฅผ ๋ค์ด, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ HTML < script > ํ๊ทธ ๋ด์ ์์ฑํ JS ์ฝ๋ ๋๋ ํ์ผ์ ์ฐ๊ฒฐํ๋ค๋ฉด, ์์ฑํ ์ฝ๋๊ฐ html ๊ณผ ๋ง๋ฌผ๋ ค์ โ๋ธ๋ผ์ฐ์ โ ์์ ์คํ์ด ๋๋ค.
๋ฐ๋ก ์ด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ํ์ ์ธ Javascript Runtime ์ด ๋๋ ๊ฒ์ด๋ค.
๋ธ๋ผ์ฐ์ ์ธ์ Javascript ๊ฐ ์คํ๋ ์ ์๋ ๋ฐํ์.
์ด์ Javascript ๊ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ๋ค๋ฅธ ๊ณณ์์ ์คํ๋ ์ ์๋ค. ํฐ๋ฏธ๋์์,
node <file_name>
์ ํตํด ์์ฑํ Javascript ์ฝ๋๊ฐ node.js ํ๊ฒฝ์์ ์คํ๋๊ฒ ํ๋ค.
node.js ์๋ ๋ง์ ๋ฒ์ ๋ค์ด ์๋ค. ๋ค์ํ ๋ฒ์ ์ ๋์ํด์ผ ๋ ์ผ์ด ๋ง์ด ์๊ธด๋ค. ์๋ฅผ ๋ค์ด ํ์ฌ ๋ด ๋ก์ปฌ ํ๊ฒฝ์ ๊ธฐ๋ณธ ๋ฒ์ ์ 12.13.0 ์ธ๋ฐ ํ ์คํธ&๊ฐ๋ฐ์ ํด์ผ ํ๋ ๋ฒ์ ์ 10.13.0 ์ด๋ค. ๊ทธ๋ผ ๊ทธ๋๋ง๋ค ์ ๋ฐ์ดํธ ํน์ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ํด์ค์ผ ํ ๊น? ๋ค์ด๊ทธ๋ ์ด๋๋ผ๋ฉด ๋งค๋ฒ ์ค์นํ node.js ๋ฅผ ์ญ์ ํด ์ฃผ์ด์ผ ํ ๊น?
๊ทธ๋์ NVM ์ด ํ์ํ๋ค.
๊ฐ๋จํ ๋ช ๋ น์ด๋ก node ๋ฅผ ์ค์นํ๊ณ ๋ค์ํ node version ์ ์์ฝ๊ฒ ์ฎ๊ฒจ ๋ค๋๊ฒ ํด์ค๋ค. ๊ฐ์ ํ๊ฒฝ์์ ํ์ด์ฌ์ ๋ฒ์ ์ ๋ค๋ฅด๊ฒ ์ค์นํ๋ ๊ฒ์ ๋ ์ฌ๋ ค๋ณด๋ฉด ์กฐ๊ธ ์ดํด๊ฐ ๊ฐ๊ธฐ๋ ํ๋ค.
nvm ls
>>> nvm ์ ํตํด ์ค์นํ node version ์ด ๋์จ๋ค.
nvm install 10.13.0
>>> nvm ์ ํตํด ์ํ๋ node version ์ ์ค์นํ๋ค.
nvm use 12.13.0
>>> nvm ์ ํตํด ์ค์น๋ node.js ์ค ์ํ๋ node version ์ ์ฌ์ฉํ๋ค.
nvm --version
>>> 0.35.3
nvm install 12.18.3
node -v
>>> 12.18.3
nvm ๊ณผ node.js ๋ฅผ ์ค์น ํ ํ์ธ ํ๋ค.
๋ญ๊ฐ ์ต์ ์ฌํญ์ ๋ฐ์ผ๋ฉด ์ข์ ๊ฑฐ ๊ฐ์ง๋ง LTS ๋ฒ์ ์ ๋ฐ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ์ด์ ๋ ์ต์ ๋ฒ์ ์ ์ค์ ๊ฐ๋ฐ์๋ค์ด ํ ์คํธ ์ค์ด๋ฏ๋ก LTS ๋ฒ์ ์ ๋นํด ์์ ์ ์ด์ง๊ฐ ์์ ์ ์๊ธฐ์ ๊ทธ๋ ๋ค๋ ๊ฒ ๊ฐ๋ค.
ํ๋ก๊ทธ๋จ์ ๋ชจ๋๋ค์ ์งํฉ์ด๋ผ๊ณ ํ๋ค. ๋ชจ๋์ด๋ ํ๋ก๊ทธ๋จ์ด ๊ธฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๊ฐ๊ฐ์ ์์ ๋ผ ์๊ฐํ๋ฉด ๋ ๋ฏํ๋ค. ๊ฐ๋ฐ์๋ค์ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด ๊ฒ์ฆ๋ ๋ชจ๋์ ๋ค์ดํด ์ฌ์ฉํ๋ค.
NPM ์ ๋ฐ๋ก ๊ทธ๋ฌํ, ํ์ํ ๋ชจ๋๋ค์ ๋ค์ด๋ก๋ ํ ์ ์๋ ๋ชจ๋๋ค์ด ๋ชจ์ฌ ์๋ ๋ชจ๋ ์คํ ์ด ์ด๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ด๊ฐ ๋ง๋ ํ๋ก์ ํธ๋ฅผ ์คํ ์ํฌ ๋ (ํน์ ๋ฐ๋์ ์ ์ฅ) ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ๋ชจ๋์ ์ด๋ค ๊ฒ๋ค์ด ์๊ณ , ์ด ํ๋ก๊ทธ๋จ์ ์ด๋ป๊ฒ ์คํํ๊ณ ํ ์คํธ ํ๋์ง ๋ช ์๋์ด ์๋ ํ์ผ์ด๋ค.
package.json ์ ๋ช ์ธ๋์ด ์๋ ๋ชจ๋์ ์ด๋ค ๋ชจ๋์ download ๋ฐ์์ผ ํ๋์ง ์๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค. ์ค์ ์ค์น๋ ๋ชจ๋๋ค์ node_modules ๋ผ๋ ํ๋ก์ ํธ ๋ด ๋๋ ํ ๋ฆฌ์ ๋ค์ด๊ฐ ์๋ค.
package.json ์ ๊ทธ๋ฌ๋๊น ํด๋น ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ๊ธฐ ์ํด ํ์ํ module ์ ์ด๋ฌ์ด๋ฌ ํ ๊ฒ๋ค์ด๋ค ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ์ ํ์ ์นด๋ฌ๋ก๊ทธ ๊ฐ์ ๊ฒ์ด๋ค. ๊ทธ๋ผ ์ด๋ฅผ ๋ณด๊ณ ์ฌ์ฉ์๊ฐ ์ง์ download ๋ฐ์์ ์ฐ๊ฒ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๋์ ๋ฐ๋ก ์ด โpackage.jsonโ ์ ํ์ธํด์ npm ์ ์ด์ฉํด ํ์ํ๋ค๊ณ ํ๋ ๋ชจ๋์ ๋ค์ด๋ก๋ ๋ฐ๋๋ค.
npm install
์์ ๋ช ๋ น์ด๋ฅผ ํตํด package.json ์์ ํ์ํ๋ค๋ module ์ ๋ค์ด๋ฐ๊ณ ์๋ฃ๋๋ฉด ํด๋น ํ๋ก์ ํธ ๋ด์ ์์ ์ธ๊ธํ๋ฏ โnode_modulesโ ๋ผ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์๊ธด ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ด๊ฐ ์์ฑํ๋ ๊ฐ์ธ ๋น ๋ธ๋ก๊ทธ์ package.json ์ ์บก์ฒํด ์๋ค.
ํ๋ก์ ํธ๊ฐ ๋์๊ฐ๊ธฐ ์ํด ๋ฐ๋์ ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ด ์๋์ง ์ ํ ์๋ค.
ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ ํ๊ฒฝ์์ ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง ์ ํ ์๋ค. ์ค์ ํ๋ก์ ํธ ๋์์ ์ง์ ์ ์ผ๋ก ์ํฅ์ ์ฃผ์ง ์๋ ๋ชจ๋๋ค์ ๋ช ์ํ๋ค.
npm ์ผ๋ก ์คํ์ํฌ ์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ์ํ๋ค. ๋ช ๋ น์ด ์ ๋ ฅ์ ํตํด ์ด๋ค ๋์์ ํด์ผ ํ๋์ง๊ฐ ์ ํ ์๋ค.
gatsby build ๋ฅผ ์คํํ๋ฏ์ด ๋ง์ด๋ค.