1 ๋ถ„ ์†Œ์š”

Node.js ๐Ÿ™€

Node.js : ๋น„๋™๊ธฐ(Asynchronous) ์ด๋ฒคํŠธ-๊ธฐ๋ฐ˜(event-driven) JavaScript ์‹คํ–‰ํ™˜๊ฒฝ์ด๋‹ค.

๋น„๋™๊ธฐ ์ด๋ฒคํŠธ-๊ธฐ๋ฐ˜์˜ ์ฒ˜๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์Šค์ผ€์ค„ ๊ด€๋ฆฌ ๋“ฑ์˜ ์ผ๋“ค์„ V8 ์—”์ง„์ด ๊ฐ๋‹นํ•˜๊ธฐ๋•Œ๋ฌธ์— ์ด์ ์„ ์ดํ•ดํ•˜๊ณ  code๋ฅผ ์ง ๋‹ค๋ฉด ๋น ๋ฅด๊ณ  ์•ˆ์ •์„ฑ ์žˆ๋Š” ์•ฑ์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, node๋ž€ V8์ด๋ผ๋Š” JavaScript ์—”์ง„ ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์ด๋‹ค.


๋ฐฐ๊ฒฝ

  • Node.js๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € JavaScript๋ฅผ ๋ฐฐ์›Œ์•ผํ•œ๋‹ค.

  • Node.js๋Š” JavaScript๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • JavaScript๋Š” C/C++, Java ์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.

  • ํ•˜์ง€๋งŒ ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ JavaScript๋Š” ๋…๋ฆฝ์ ์ธ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค.

  • ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋Š” ํŠน์ •ํ•œ ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๊ธฐ ๋•Œ๋ฌธ์— ์›น ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ๋งŒ ๋™์ž‘์„ ํ•œ๋‹ค.

  • ์ฆ‰, ์›น ๋ธŒ๋ผ์šฐ์ €(ํฌ๋กฌ, ์‚ฌํŒŒ๋ฆฌ, ์ต์Šคํ”Œ๋กœ๋Ÿฌ, ํŒŒ์ด์–ดํญ์Šค ๋“ฑ)๊ฐ€ ์—†์œผ๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

  • ์—ฌ๊ธฐ์„œ Node.js๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ๊ฐ€ ๋œ๋‹ค.

  • ์ฆ‰, JavaScript ๋ฅผ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋…๋ฆฝ์‹œํ‚จ ๊ฒƒ์œผ๋กœ Node.js๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด ํ„ฐ๋ฏธ๋„ํ”„๋กœ๊ทธ๋žจ(์œˆ๋„์šฐ์˜ cmd, ๋งฅ์˜ terminal ๋“ฑ)์—์„œ Node.js๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์—†์ด ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํ•˜์ง€๋งŒ JavaScript์—์„œ ๋ถ„๋ฆฌ๋œ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ๋ฒ•์€ ๊ฐ™๋‹ค.

  • ์ด๋ ‡๊ฒŒ Node.js๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๋ฌด๊ด€ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

  • ์ค‘์š”ํ•œ ๊ฒƒ์€ Node.js๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ค‘์š”ํ•œ ์ด์œ ๋Š” ์ด์ „๊นŒ์ง€ Server-Client ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์›น์—์„œ ํ‘œ์‹œ๋˜๋Š” ๋ถ€๋ถ„์€ JavaScript ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์•ผ๋งŒ ํ–ˆ์œผ๋ฉฐ, ์„œ๋ฒ„๋Š” Reby, Java ๋“ฑ ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์จ์„œ ๋งŒ๋“ค์—ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ๋งˆ์นจ๋‚ด ํ•œ ๊ฐ€์ง€ ์–ธ์–ด๋กœ ์ „์ฒด ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.




Express

Express : nodejs์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋ผ์šฐํŒ…๊ณผ ๋กœ์ง์˜ ๋ชจ๋“ˆํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•จ
const http = require('http');
const express = require('express');
const { categories } = require('./categories');
const { products, createProduct, updateProduct, deleteProduct } = require('./products');
const { products2 } = require('./products2');
const PORT = 8080;

const app = express();

app.get('/products/categories', categories);
app.get('/products', products);
app.get('/products/2', products2);
// ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ’์„ ์“ฐ๋ฉด ๋ณด์—ฌ์ฃผ๊ธฐ
app.post('/products', express.json(), createProduct);
// ์‚ฌ์šฉ์ž๊ฐ€ ์›๋ž˜์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ
app.put('/products', express.json(), updateProduct);
// ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ
app.delete('/products', express.json(), deleteProduct);

const server = http.createServer(app);

server.listen(PORT, () => {
  console.log(`server is listening on PORT ${PORT}`);
});


express๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์กฐ๊ฑด๋ฌธ ์—†์ด๋„ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ง๊ด€์ ์ด๋‹ค

์—…๋ฐ์ดํŠธ: