Node.js ๋ž€?

node.js๋Š” Chrome V8 JavaScript ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ JavaScript ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„์€ ํŠน์ • ์–ธ์–ด๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์œ„์— ๋‚ด์šฉ์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ํ’€์–ด์„œ ๋งํ•˜๋ฉด node๋Š” V8 ์—”์ง„์„ ์‚ฌ์šฉํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— node๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €(browser) ์—†์ด ์ปดํ“จํ„ฐ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

node.js(๋…ธ๋“œ์ œ์ด์—์Šค)๋Š” node(๋…ธ๋“œ)๋ผ๋Š” ์›๋ž˜ ์ด๋ฆ„์— JavaScript(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ .js๋ฅผ ๋ถ™์ธ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ โ€œnode.js = nodeโ€๋กœ ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

node.js๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” JavaScript(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) ์–ธ์–ด๋ฅผ ๋ธŒ๋ผ์šฐ์ €(Google Chrome, Internet Explorer, Mozilla Firefox, Opera, Apple Safari ๋“ฑ)์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ node๊ฐ€ ๋‚˜์˜ค๋ฉด์„œ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์ด ์•„๋‹Œ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํฌ๋กฌ์˜ V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ์ด๋ž€?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ์”ฉ ํ•ด์„ํ•˜๋ฉด์„œ ์‹คํ–‰ํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ(Interpreter) ๋ฐฉ์‹ ์ด๋ฏ€๋กœ ์†๋„๊ฐ€ ๋Š๋ฆฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ํฌ๋กฌ์˜ V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ๋‚˜์˜ค๋ฉด์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

V8 ์—”์ง„์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ฐ”๊พผ ํ›„ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

Node.js ์žฅ์ 

  • JavaScript(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)๋งŒ ์ž˜ ์•Œ๋ฉด Client(ํด๋ผ์ด์–ธํŠธ), Server(์„œ๋ฒ„) ๋ชจ๋‘ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • node.js๋Š” ์˜คํ”ˆ์†Œ์Šค๊ฐ€ ๋„ˆ๋ฌด ์ž˜ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ์—„์ฒญ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. npm(node package manager)๋ฅผ ํ†ตํ•ด์„œ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋˜์–ด์žˆ๋Š” ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ๋งŒ ํ•ด๋„ ๊ฐœ๋ฐœ์ด ๊ธˆ๋ฐฉ ๋ฉ๋‹ˆ๋‹ค.

homebrew๋ฅผ ์ด์šฉํ•œ node ์„ค์น˜ ๋ฐฉ๋ฒ•

$ brew install node
  • ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
$ node -v 
# v16.5.0
$ npm -v
# 7.19.1

NPM(Node Package Manager) ๋ž€?

NPM(Node Package Manager)์€ node.js๋ชจ๋“ˆ์„ ๋ชจ์•„๋‘” ์ €์žฅ์†Œ, ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ

NPM(Node Package Manager)๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ node.js๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๊ฐ™์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ํ•„์š”ํ•œ ์›ฌ๋งŒํ•œ ๊ธฐ๋Šฅ์€ ์ด๋ฏธ ๊ฐœ๋ฐœ์ด ๋ผ์„œ NPM(Node Package Manager)๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์ด๋ฏธ ์žˆ๋Š” ๋ชจ๋“ˆ์„ ์ž˜ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ๋งŒ ํ•ด๋„ ๊ฐœ๋ฐœ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•ด์ง‘๋‹ˆ๋‹ค.

npm

์œ„ ๋งํฌ์— ๋“ค์–ด๊ฐ€์„œ ๋ชจ๋“ˆ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

github repository ํŽ˜์ด์ง€๋ฅผ ์—ด์–ด์„œ ์ œ๋Œ€๋กœ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋œ ๋ชจ๋“ˆ์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ๊ฐ„ ๋‹ค์šด๋กœ๋“œ ์ˆ˜๋ฅผ ๋ณด๊ณ , ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“ˆ์ธ์ง€ ํ™•์ธ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

npm์„ ์ด์šฉํ•œ ๋ชจ๋“ˆ ์„ค์น˜ ๋ฐฉ๋ฒ•

$ npm install [๋ชจ๋“ˆ ์ด๋ฆ„] or npm i [๋ชจ๋“ˆ ์ด๋ฆ„]

๋ชจ๋“  ํ”„๋กœ์ ํŠธ(์ „์—ญ ์„ค์น˜) : $ npm install -g [๋ชจ๋“ˆ๋ช…]

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ(๋กœ์ปฌ ์„ค์น˜) : $ npm install [๋ชจ๋“ˆ๋ช…]