๋ฏธ๋ฆฌ๋ณด๊ธฐ
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req);
});
server.listen(3000);
์ค๋น : ํ๋ก์ ํธ, ๊ณต์ ํํ์ด์ง ์ค๋ช ์
Introduction to Node.js
Getting started guide to Node.js, the server-side JavaScript runtime environment. Node.js is built on top of the Google Chrome V8 JavaScript engine, and it's mainly used to create web servers - but it's not limited to just that.
nodejs.dev
https://nodejs.org/en/docs/guides/getting-started-guide/
Getting Started Guide | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
0. Node.js๋
์คํ ์์ค ๋ฐ ๊ต์ฐจ ํ๋ซํผ JavaScript ๋ฐํ์ ํ๊ฒฝ์ ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ์ข ๋ฅ์ ํ๋ก์ ํธ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ์ด๋ค.
Node.js๋ Google Chrome์ ํต์ฌ์ธ V8 JavaScript ์์ง์ ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์ ์คํํ๋ค.
๊ณต์ ์ค๋ช
Node.js ์ฑ์ ๋ชจ๋ ์์ฒญ์ โโ๋ํด ์ ์ค๋ ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋จ์ผ ํ๋ก์ธ์ค์์ ์คํ๋ฉ๋๋ค. Node.js๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ JavaScript ์ฝ๋๊ฐ ์ฐจ๋จ๋์ง ์๋๋ก ํ๋ ๋น๋๊ธฐ I/O ํ๋ฆฌ๋ฏธํฐ๋ธ ์ธํธ๋ฅผ ์ ๊ณตํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก Node.js์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋น์ฐจ๋จ ํจ๋ฌ๋ค์์ ์ฌ์ฉํ์ฌ ์์ฑ๋๋ฏ๋ก ์ฐจ๋จ ๋์์ ํ์ค์ด ์๋ ์์ธ๋ก ๋ง๋ญ๋๋ค. Node.js๊ฐ ๋คํธ์ํฌ์์ ์ฝ๊ธฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํ์ผ ์์คํ ์ก์ธ์ค์ ๊ฐ์ I/O ์์ ์ ์ํํ ๋ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ๊ณ ๋๊ธฐ ์ค์ธ CPU ์ฃผ๊ธฐ๋ฅผ ๋ญ๋นํ๋ ๋์ Node.js๋ ์๋ต์ด ๋์์ค๋ฉด ์์ ์ ์ฌ๊ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด Node.js๋ ์ฌ๊ฐํ ๋ฒ๊ทธ ์์ธ์ด ๋ ์ ์๋ ์ค๋ ๋ ๋์์ฑ ๊ด๋ฆฌ ๋ถ๋ด ์์ด ๋จ์ผ ์๋ฒ์์ ์์ฒ ๊ฐ์ ๋์ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. Node.js๋ ๋ธ๋ผ์ฐ์ ์ฉ JavaScript๋ฅผ ์์ฑํ๋ ์๋ฐฑ๋ง ๋ช ์ ํ๋ฐํธ์๋ ๊ฐ๋ฐ์๊ฐ ์ด์ ์์ ํ ๋ค๋ฅธ ์ธ์ด๋ฅผ ๋ฐฐ์ธ ํ์ ์์ด ํด๋ผ์ด์ธํธ ์ธก ์ฝ๋ ์ธ์๋ ์๋ฒ ์ธก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ ํ ์ด์ ์ด ์์ต๋๋ค. Node.js์์๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ๋ฐ์ดํธํ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์์ผ๋ฏ๋ก ์๋ก์ด ECMAScript ํ์ค์ ๋ฌธ์ ์์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. Node.js ๋ฒ์ ์ ๋ณ๊ฒฝํ์ฌ ์ฌ์ฉํ ECMAScript ๋ฒ์ ์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ํ๋๊ทธ์ ํจ๊ป Node.js๋ฅผ ์คํํ์ฌ ํน์ ์คํ ๊ธฐ๋ฅ์ ํ์ฑํํ ์๋ ์์ต๋๋ค. |
1. Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ฃจํธ ํ์ผ ์์ฑ (server.js ๋ app.js)
-> ๋งจ ๋ง์ง๋ง ๋จ๊ณ๋ก ์๋ฒ์ ํด๋ผ์ฐ๋์ ์๋ ์ปดํจํฐ์ Node.js ๋ฅผ ์คํํ ํ ๋ app.js๋ก ๊ฒฐ์ .
์ด app.js ํ์ผ์ Node.js๋ฅผ ํตํด ์๋ฒ๋ฅผ ์์ฑํ๋ ค๋ฉด ๊ธฐ๋ฅ ๋ช๊ฐ์ง๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค.
Node.js์ ์ฝ์ด ๋ชจ๋
http : Launch a server, send requests Node.js ์ฑ์ด ๋ค๋ฅธ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด ์ฌ๋ฌ ์๋ฒ ๊ฐ์ ์ํตํ ์ ์๋ค |
https : Launch a SSL server Https์ ๊ฒฝ์ฐ ๋ชจ๋ ์ ์ก ๋ฐ์ดํฐ๊ฐ ์ํธํ๋๋ SSL ์ํธํ ์๋ฒ๋ฅผ ์ถ์ํ ๋ ๋์์ด ๋๋ค. |
fs : ํ์ผ ์์คํ ๊ด๋ จ |
path : ํ์ผ ์์คํ ์ ์๋ ํ์ผ์ ๋ํ ๊ฒฝ๋ก๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ (์๋์ฐ, ๋งฅ, ๋ฆฌ๋ ์ค๊ฐ ๋ค๋ฅธ ํ์์ ์ฌ์ฉํ๋๋ฐ ๋์) |
os : ์ด์์ฒด์ ๊ด๋ จ ๋์์ ์ค |
2. http ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
์ฐ์ http ๋ชจ๋์ ๋ถ๋ฌ์์ Node.js ์ ํ์ฌ๋ http ๋ชจ๋์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
์ ๋ ๋ณ๊ฒฝํ์ง ์์ ๊ฐ์ ์ฌ์ฉํ ๊ฒ์ด๋ฏ๋ก const๋ฅผ ์ฌ์ฉ, ๋ค์ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ๋ค.
Node.js๋ ์ ์ญ์ผ๋ก ๋ ธ์ถํ๋ ํน์ฑ์ด ์์ด์ Node.js๋ก ์คํํ๋ ๋ชจ๋ ํ์ผ์์ ๊ธฐ๋ณธ์ผ๋ก require์ด๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
(* require ํค์๋๋ ๋ค๋ฅธ ํ์ผ๋ก์ ๊ฒฝ๋ก๋ js ํ์ผ์ ๋ถ๋ฌ์ฌ ์ ์๋ค)
์ฐธ๊ณ ๋ก ํ์ผ ๊ฒฝ๋ก๋ ๋ฐ๋์ ./(์๋ ๊ฒฝ๋ก)๋ ์ ๋ ๊ฒฝ๋ก์ ๊ฒฝ์ฐ /๋ก ์์ํ๋ค.
const http = require('./http.js');
์ด๋ ๊ฒ ์ ๋ ฅํ๋ฉด ๊ฐ์ ํด๋์์ http ํ์ผ์ ์ฐพ์ ๊ฒ์ด๋ค.
./์ด๋ /๋ฅผ ์๋ตํ๋ฉด ๋ก์ปฌ ํ์ผ์ ์ฐพ์ง ์์ http.js ํ์ผ์ด ์์ด๋ ๋ถ๋ฌ์ค์ง ์์ ๊ฒ์ด๋ค.
const http = require('http');
๊ฒฝ๋ก๋ฅผ ์๋ตํ๋ฉด http๋ผ๋ ๊ธ๋ก๋ฒ ๋ชจ๋์ ์ฐพ๊ฒ ๋๋ค.(์ด๋ Node.js์ ํ์ฌ๋ ๋ชจ๋ ์ค ํ๋์ด๋ค.)
์ด์ ๋ถ๋ฌ์จ ๊ธ๋ก๋ฒ ๋ชจ๋์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
3. createServer ๋ฉ์๋
์๋ฒ๋ฅผ ์์ฑํ ๋ ๊ผญ ํ์ํ ๋ฉ์๋์ด๋ค.
//๊ธฐ๋ณธํ
const http = require('http');
//createServer๊ฐ ์์ฑํ ์๋ฒ๋ฅผ ์์๋ก ์ ํด์ค๋ค. ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ฎ์ด์ฐ์ง ์์ ๊ฒ์ด๋ฏ๋ก
const server = http.createServer((req, res) => {
console.log(req);
});
server.listen(3000);
createServer์ ์ธ์๋ก function(req,res)๋ฅผ ์ ๋ ฅํ๋ฉด ์๋ฒ์ ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ๋ ธ๋๊ฐ (์ต๋ช )์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํ๋ค.
์ด๊ฒ ๋ฐ๋ก Node.js์ ์ฃผ๋ ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ(EDA)์ด๋ค.
์ฆ, ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ด ํจ์๋ฅผ ์คํํ๋ผ ์๋ ค์ฃผ๋ ๊ฒ์ด๋ค.
4. listen ๋ฉ์๋
Node.js๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ๋ก ์ข ๋ฃํ์ง ์๊ณ ๊ณ์ ์คํ๋๋ฉด์ ๋ฃ๋๋ก ํ๋ค.
listne์ ์ ๋ ฅํ ์ ์๋ ์ธ์ ์ฌ๋ฌ ๊ฐ ์ค,
(1) ํฌํธ : ์ค๋ฌด์์๋ ๋๊ฐ ํฌํธ ์ธ์๋ฅผ ์ ๋ ฅํ์ง ์๊ณ , ๊ธฐ๋ณธ์ผ๋ก ํฌํธ๋ฒํธ 80์ด ์ฌ์ฉ๋๋ค.
(2) ํธ์คํธ์ด๋ฆ
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
์ด ์ค๋ํซ์ ์คํํ๋ ค๋ฉด app.jsํ์ผ์ ์ ์ฅํ๊ณ node app.jsํฐ๋ฏธ๋์์ ์คํ
http://localhost:3000์ ๋ฐฉ๋ฌธํ๋ฉด "Hello World"๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ค.
ctrl+C๋ฅผ ์ด์ฉํ๋ฉด ์ ์ ์ข ๋ฃ๋๋ค.
'Javascript > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js] (3) ์์ฒญ ๊ฐ์ฒด (0) | 2022.11.23 |
---|---|
[Node.js] (2) Node์ ๋ผ์ดํ์ฌ์ดํด ๋ฐ ์ด๋ฒคํธ ๋ฃจํ (0) | 2022.11.23 |
[Node.js] ์ฌ์ฉ์๊ฐ ์ํ๋ ํด๋ ์ด๋ฆ ์์ ํ๊ฒ ๋ฐ์์ค๊ธฐ (0) | 2022.08.23 |
[NodeJs] Get, Post (0) | 2022.05.24 |
[Node.js] ๋ชจ๋ (export, require) (0) | 2022.05.15 |