Runtime, NodeJS, NVM, NPM, Package.json

๐Ÿƒ๐Ÿปโ€โ™€๏ธRuntime ์ด๋ž€?

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ (ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๋Œ์•„๊ฐ€๋Š” ํ™˜๊ฒฝ)
  • ์–ด๋–ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ํ˜น์€ ์‹คํ–‰ ๋˜๋Š” ๊ณณ์„ ์˜๋ฏธ

์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ HTML < script > ํƒœ๊ทธ ๋‚ด์— ์ž‘์„ฑํ•œ JS ์ฝ”๋“œ ๋˜๋Š” ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•œ๋‹ค๋ฉด, ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ html ๊ณผ ๋งž๋ฌผ๋ ค์„œ โ€œ๋ธŒ๋ผ์šฐ์ €โ€ ์—์„œ ์‹คํ–‰์ด ๋œ๋‹ค.

๋ฐ”๋กœ ์ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋Œ€ํ‘œ์ ์ธ Javascript Runtime ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๐ŸŒณNode.js

๋ธŒ๋ผ์šฐ์ € ์™ธ์— Javascript ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„.

์ด์ œ Javascript ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. ํ„ฐ๋ฏธ๋„์—์„œ,

node <file_name>

์„ ํ†ตํ•ด ์ž‘์„ฑํ•œ Javascript ์ฝ”๋“œ๊ฐ€ node.js ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๊ฒŒ ํ•œ๋‹ค.

๐ŸŽซNVM - ๋‹ค์–‘ํ•œ node version ์„ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ

node.js ์—๋Š” ๋งŽ์€ ๋ฒ„์ „๋“ค์ด ์žˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฒ„์ „์— ๋Œ€์‘ํ•ด์•ผ ๋  ์ผ์ด ๋งŽ์ด ์ƒ๊ธด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ๋‚ด ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ ๊ธฐ๋ณธ ๋ฒ„์ „์€ 12.13.0 ์ธ๋ฐ ํ…Œ์ŠคํŠธ&๊ฐœ๋ฐœ์„ ํ•ด์•ผ ํ•˜๋Š” ๋ฒ„์ „์€ 10.13.0 ์ด๋‹ค. ๊ทธ๋Ÿผ ๊ทธ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ํ˜น์€ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•ด์ค˜์•ผ ํ• ๊นŒ? ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ผ๋ฉด ๋งค๋ฒˆ ์„ค์น˜ํ•œ node.js ๋ฅผ ์‚ญ์ œํ•ด ์ฃผ์–ด์•ผ ํ• ๊นŒ?

๊ทธ๋ž˜์„œ NVM ์ด ํ•„์š”ํ•˜๋‹ค.

NVM - Node Version Manager

๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋กœ 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 ๋ฅผ ์„ค์น˜ ํ›„ ํ™•์ธ ํ–ˆ๋‹ค.

nodejs ๋ญ”๊ฐ€ ์ตœ์‹ ์‚ฌํ•ญ์„ ๋ฐ›์œผ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์ง€๋งŒ LTS ๋ฒ„์ „์„ ๋ฐ›๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค. ์ด์œ ๋Š” ์ตœ์‹  ๋ฒ„์ „์€ ์‹ค์ œ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ…Œ์ŠคํŠธ ์ค‘์ด๋ฏ€๋กœ LTS ๋ฒ„์ „์— ๋น„ํ•ด ์•ˆ์ •์ ์ด์ง€๊ฐ€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ์— ๊ทธ๋ ‡๋‹ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ‘€NPM (Node package manager)

ํ”„๋กœ๊ทธ๋žจ์€ ๋ชจ๋“ˆ๋“ค์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ชจ๋“ˆ์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์ด ๊ธฐ๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ๊ฐ์˜ ์š”์†Œ ๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋  ๋“ฏํ•˜๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๊ฒ€์ฆ๋œ ๋ชจ๋“ˆ์„ ๋‹ค์šดํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

NPM ์€ ๋ฐ”๋กœ ๊ทธ๋Ÿฌํ•œ, ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ๋“ค์ด ๋ชจ์—ฌ ์žˆ๋Š” ๋ชจ๋“ˆ ์Šคํ† ์–ด ์ด๋‹ค.

๐ŸŽPackage.json

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด๊ฐ€ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ ์‹œํ‚ฌ ๋•Œ (ํ˜น์€ ๋ฐ˜๋Œ€์˜ ์ž…์žฅ) ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ์€ ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๊ณ , ์ด ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•˜๋Š”์ง€ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ์ด๋‹ค.

package.json ์— ๋ช…์„ธ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“ˆ์€ ์–ด๋–ค ๋ชจ๋“ˆ์„ download ๋ฐ›์•„์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์‹ค์ œ ์„ค์น˜๋œ ๋ชจ๋“ˆ๋“ค์€ node_modules ๋ผ๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

package.json ์€ ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ module ์€ ์ด๋Ÿฌ์ด๋Ÿฌ ํ•œ ๊ฒƒ๋“ค์ด๋‹ค ํ•˜๋ฉด์„œ ๋ณด์—ฌ์ฃผ๋Š” ์ œํ’ˆ์˜ ์นด๋‹ฌ๋กœ๊ทธ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ ์ด๋ฅผ ๋ณด๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ download ๋ฐ›์•„์„œ ์“ฐ๊ฒŒ ๋œ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๋ž˜์„œ ๋ฐ”๋กœ ์ด โ€œpackage.jsonโ€ ์„ ํ™•์ธํ•ด์„œ npm ์„ ์ด์šฉํ•ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š”๋‹ค.

npm install

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด package.json ์—์„œ ํ•„์š”ํ•˜๋‹ค๋Š” module ์„ ๋‹ค์šด๋ฐ›๊ณ  ์™„๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋‚ด์— ์œ„์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ โ€œnode_modulesโ€ ๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐ŸŽPackage.json ์˜ ๊ตฌ์„ฑ

๋‚ด๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๊ฐœ์ธ ๋น„ ๋ธ”๋กœ๊ทธ์˜ package.json ์„ ์บก์ฒ˜ํ•ด ์™”๋‹ค.

1. dependencies

ํ”„๋กœ์ ํŠธ๊ฐ€ ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์ด ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์ ํ˜€ ์žˆ๋‹ค.

dependencies

2. devDependencies

ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์ด ๋ฌด์—‡์ธ์ง€ ์ ํ˜€ ์žˆ๋‹ค. ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๋™์ž‘์— ์ง์ ‘์ ์œผ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ชจ๋“ˆ๋“ค์„ ๋ช…์‹œํ•œ๋‹ค.

devdependencies

3. scripts

npm ์œผ๋กœ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ •์˜ํ•œ๋‹ค. ๋ช…๋ น์–ด ์ž…๋ ฅ์„ ํ†ตํ•ด ์–ด๋–ค ๋™์ž‘์„ ํ•ด์•ผ ํ•˜๋Š”์ง€๊ฐ€ ์ ํ˜€ ์žˆ๋‹ค.

gatsby build ๋ฅผ ์‹คํ–‰ํ•˜๋“ฏ์ด ๋ง์ด๋‹ค.

scripts


Written by@[DotoriMook]
ํ”„๋ก ํŠธ์—”๋“œ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ๋„ํ† ๋ฆฌ๋ฌต์˜ ๊ธฐ์ˆ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค.

GitHubMediumTwitterFacebook