node.js ์ฒซ๊ฑธ์
Node.js ๐
๋น๋๊ธฐ ์ด๋ฒคํธ-๊ธฐ๋ฐ์ ์ฒ๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ์ค์ผ์ค ๊ด๋ฆฌ ๋ฑ์ ์ผ๋ค์ 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
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}`);
});