์ค๋์ HTTP Method๋ฅผ ๋ณต์ตํ๊ณ Node.js๋ฅผ ์ข ๋ ๊น๊ฒ ์์๋ณด์๋ค. ์ด์ ์๊ฐ์ ๋ฐฐ์ด ๋ชจ๋์ ๋ํด์๋ ์ข ๋ ์์ธํ ๋ฐฐ์ฐ๊ณ , ๋ชจ๋๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ์ ์ฐจ์ด๋ ์์๋ณด์์.
๐ญHTTP method
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋ ์ด๋ค ๋์์ ์ํ๋์ง ๋ํ๋ด๋ ๋ฐฉ์. ๊ฐ ๋ฉ์๋๋ ๊ณ ์ ์ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, REST API ์ค๊ณ์ ๊ธฐ๋ณธ์ด ๋๋ค.
์ฃผ์ HTTP Method
Method | ์ญํ |
---|---|
์์ฑ POST |
์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ค. ์์ฒญ ๋ณธ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํด์ ์ ์กํ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ URL์ ๋ ธ์ถ๋์ง ์์ ๋ณด์์ฑ์ด ๋๋ค. ๋ํ ์บ์๋์ง ์๊ณ , ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ์ง ์๋๋ค. |
์กฐํ GET |
๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฉ์๋์ด๋ค. URL์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ฉฐ, ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ๊ณ ์บ์๊ฐ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๊ฐ URL์ ๋ ธ์ถ๋์ด ๋ณด์์ ์ทจ์ฝํ ์ ์๋ค. |
์์ PUT |
๋ฆฌ์์ค๋ฅผ ์์ ํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋. ๋ฆฌ์์ค ์ ์ฒด๋ฅผ ๊ต์ฒดํ๋ค. ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๋ค. |
์์ PATCH |
๋ฆฌ์์ค๋ฅผ ์์ ํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋. ๋ฆฌ์์ค ์ผ๋ถ๋ง ์์ ํ๋ค. ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๋ค. |
์ญ์ DELETE |
์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐํ ๋ ์ฌ์ฉํ๋ค. ์ง์ ๋ ๋ฆฌ์์ค๋ฅผ ์์ ํ ์ญ์ ํ๋ ์์ ์ ์ํํ๋ค. |
๊ธฐํ HTTP Method
๊ฐ์ฌ๋๊ป์ ์ค๋ฌด์์๋ ๋ง์ด ์ฐ์ง๋ ์๋๋ค๊ณ ํ์
จ๋ค. ํ์ง๋ง ์ผ๋จ ์์๋์!
Method | ์ญํ |
---|---|
HEAD |
GET ๊ณผ ๋์ผํ์ง๋ง ์๋ต ๋ณธ๋ฌธ์ ๋ฐํํ์ง ์๋๋ค. ๋ฆฌ์์ค์ ๋ฉํ๋ฐ์ดํฐ๋ง ํ์ํ ๋ ์ ์ฉํ ๋ฉ์๋์ด๋ค. |
OPTIONS |
์๋ฒ๊ฐ ์ง์ํ๋ HTTP ๋ฉ์๋๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํ๋ค. CORS ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ์์ ์ค์ํ ์ญํ ์ ํ๋ค. |
CONNECT |
ํ๋ก์ ์๋ฒ๋ฅผ ํตํ ํฐ๋๋ง ์ฐ๊ฒฐ์ ์ค์ ํ ๋ ์ฌ์ฉํ๋ค. HTTPS์ ๊ฐ์ ์ํธํ๋ ํต์ ์ ์ฃผ๋ก ํ์ฉ๋๋ค. |
TRACE |
์์ฒญ/์๋ต ์ฌ์ดํด์ ์ถ์ ํ๊ธฐ ์ํ ๋ฉ์๋๋ก, ๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. |
๐ปNode.js
Nodejs๋ ๋ฐฑ์๋์๋ง ์ด๋ค??
Node.js๋ only ๋ฐฑ์๋ ๊ธฐ์ ์ด ์๋๋ค.
Node.js๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๊ณ , Node.js ๊ธฐ๋ฐ ํ๋ก ํธ์๋ ๋๊ตฌ๋ ํ๋ ์น ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํ์ ์์์ด๋ค.
Stack Overflow์ 2024๋
์กฐ์ฌ ๊ฒฐ๊ณผ, Node.js๋ "Web frameworks and Technologies" ๋ถ์ผ์์ 1์๋ฅผ ์ฐจ์งํ๋ค. ์ด๋ Node.js๊ฐ ํ๋ ์น ๊ฐ๋ฐ์์ ์ผ๋ง๋ ์ค์ํ ์์น๋ฅผ ์ฐจ์งํ๊ณ ์๋์ง ๋ณด์ฌ์ค๋ค.

๋ค๋ฅธ ๋ฐฑ์๋ ํ๋ ์์ํฌ์์ ๋น๊ต
๐ Spring์ ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ต์ ํ๋ ํ๋ ์์ํฌ๋ก, ๊ฐ๋ ฅํ ๋ณด์ ๊ธฐ๋ฅ๊ณผ ์์ ์ฑ์ ์ ๊ณตํ๋ค. ๋๊ท๋ชจ ๊ธฐ์ ํ๊ฒฝ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ๋ค์ํ ๋ชจ๋๊ณผ ์ํ๊ณ๋ฅผ ๊ฐ์ถ๊ณ ์๋ค. ๋ค๋ง Node.js์ ๋นํด ์๋์ ์ผ๋ก ๋ฌด๊ฒ๊ณ , ์ค์ ์ด ๋ณต์กํ ์ ์๋ค.
๐ Python ๋ฐฑ์๋(Django, Flask)๋ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ๊ณผ ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค. ํนํ ๋ฐ์ดํฐ ์ฌ์ด์ธ์ค, ๋จธ์ ๋ฌ๋ ๋ถ์ผ์์ ํตํฉ์ด ์ฉ์ดํ๋ค. ํ์ง๋ง ๋์์ฑ ์ฒ๋ฆฌ์์๋ Node.js์ ๋นํด ์ ํ์ ์ผ ์ ์๋ค.
์ฐ๋ฆฌ๋๋ผ๋ ์๋ฐ์ ์คํ๋ง ํ๋ ์์ํฌ๊ฐ ํ์ค์ผ๋ก ์ฌ์ฉ๋์ด ์์ง๋ง, ๊ธ๋ก๋ฒ ๊ด์ ์์๋ Node.js์ Spring์ด ๋น์ทํ ์์ค์ ์ธ๊ธฐ๋ฅผ ๋๋ฆฌ๊ณ ์๋ค..๋ผ๊ณ ํ๊ธฐ์ ์ฐจ์ด๊ฐ ๋๋ฌด ๊ทน์ฌํ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ๐์๋ฌดํผ ์ฐ๋ฆฌ๋๋ผ๋ ์คํ๋ง์ด ์งฑ์ด๊ธด ํ๋ค. ๊ทธ๋๋!! Node.js๋ ์คํ๋ง์ ๋นํด ํ์คํ ๊ฐ๋ฐ์ ๋ ์ ์ฉํ๋ฉฐ, ํ๋ก ํธ์๋ ์ ๊ทผ๋ ๋ ์ฝ๋ค๋ ์ฅ์ ์ด ์๋ค.
์์ง ์ฐ๋ฆฌ๋๋ผ๋ "์๋ฐ ๊ณตํ๊ตญ"์ด๋ผ๊ณ ๋ถ๋ฆด ๋งํผ ์๋ฐ ๊ธฐ์ ์ด ๊ฐ์ธ์ด์ง๋ง, ์ต๊ทผ์๋ Node.js ๋ฐฑ์๋ ์กฐํฉ๋ ์ ์ ๋์ด๋๋ ์ถ์ธ์ด๋ค. ํด์ธ์์๋ Netflix, Airbnb, LinkedIn, Uber, NASA ๋ฑ ๋ง์ ๊ธ๋ก๋ฒ ๊ธฐ์
๋ค์ด ์ด๋ฏธ Node.js๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์๋ค!
๊ทธ๋์ Node.js๊ฐ ์ ํํ ๋ญ๊น
Node.js๋ Chrome v8 ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๊ตฌ๋๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ํ๊ฒฝ์ด๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ์๋ฒ ์ธก ํ๋ก๊ทธ๋๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ ์ ์๊ฒ ํ๋ค.
Node.js์ ํต์ฌ ํน์ง
โ
์ฑ๊ธ ์ค๋ ๋
Node.js๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ ๋ฉ์ธ ์ค๋ ๋์์ ๋ชจ๋ ์์
์ ์ฒ๋ฆฌํ๋ค. ์ด๋ ๋ฉํฐ ์ค๋ ๋ ๋ฐฉ์์ ๋นํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ๊ณ , ์ปจํ
์คํธ ์ค์์นญ ๋น์ฉ์ด ์๋ค๋ ์ฅ์ ์ด ์๋ค. ํ์ง๋ง CPU ์ง์ฝ์ ์ธ ์์
์๋ ์ ํ์ ์ผ ์ ์๊ณ , ์ต์ ๋ฒ์ ์ Node.js์์๋ ์์ปค ์ค๋ ๋๋ฅผ ํตํด ๋ฉํฐ ์ค๋ ๋ฉ์ ์ง์ํ๊ธฐ๋ ํ๋ค.
โ
์ด๋ฒคํธ ๊ธฐ๋ฐ
Node.js๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ
์ฒ๋ฅผ ์ฑํํ๊ณ ์๋ค. ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ํตํด ๋น๋๊ธฐ ์์
์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ฝ๋ฐฑํจ์, Promise, async/await ๋ฑ์ ํ์ฉํด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
โ
๋
ผ๋ธ๋กํน I/O
Node.js์ ๊ฐ์ฅ ํฐ ํน์ง ์ค ํ๋. ํ์ผ ์ฝ๊ธฐ, ๋คํธ์ํฌ ์์ฒญ ๋ฑ์ I/O ์์
์ด ์งํ๋๋ ๋์ ๋ค๋ฅธ ์์
์ ๊ณ์ ์ฒ๋ฆฌํ ์ ์์ด, ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ค์ต: ๋ ผ๋ธ๋กํน ์ฝ๋๋ก ์์๋ณด๊ธฐ
Node.js์ ๋ ผ๋ธ๋กํน ํน์ฑ์ ์ดํดํ๊ธฐ ์ํด ๊ฐ๋จํ ์์ ๋ฅผ ์ดํด๋ณด์.
function first() {
console.log("์ฒซ๋ฒ์งธ");
}
function second() {
console.log("๋๋ฒ์งธ");
}
function third() {
console.log("์ธ๋ฒ์งธ");
}
first();
second();
third();

์ ์ฝ๋๋ ์์ฐจ์ ์ผ๋ก ์คํ๋์ด, "์ฒซ๋ฒ์งธ", "๋๋ฒ์งธ", "์ธ๋ฒ์งธ" ์์๋ก ์ถ๋ ฅ๋๋ค. ํ์ง๋ง setTimeout
์ ์ฌ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
function first() {
console.log("์ฒซ๋ฒ์งธ");
}
function second() {
console.log("๋๋ฒ์งธ");
}
function third() {
console.log("์ธ๋ฒ์งธ");
}
first();
setTimeout(second, 2000);
third();

์ด ์์ ์์๋ setTimeout
์ ์ฌ์ฉํ์ฌ second ํจ์์ ์คํ์ 2์ด ์ง์ฐ์์ผฐ๋ค. Node.js์ ๋
ผ๋ธ๋กํน ํน์ฑ์ผ๋ก ์ธํด, ์คํ ํ๋ฆ์ด second ํจ์์ ์คํ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๊ณ์ ์งํ๋์ด third ํจ์๊ฐ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ค. ์ด๋ฌํ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ Node.js์ ํต์ฌ์ด๋ฉฐ, ๋์ ์ฒ๋ฆฌ๋๊ณผ ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.!
๐งฉ๋ชจ๋:์ฝ๋์ ์ฌ์ฌ์ฉ๊ณผ ๊ตฌ์กฐํ
๋ชจ๋์ด๋?
์ฌ์ฌ์ฉํ ์ฝ๋ ์กฐ๊ฐ์ผ๋ก, ๊ธฐ๋ฅ๋ณ๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ํ๋ค.
Node.js์์๋ ๋ชจ๋์ ํตํด ์ฝ๋๋ฅผ ๊ตฌ์กฐํํ๊ณ , ํ์ํ ๊ธฐ๋ฅ๋ง ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์๋ค.
๋ด์ฅ ๋ชจ๋
Node.js์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ํ ๋ด์ฅ ๋ชจ๋์ ์ ๊ณตํ๋ค. ์ด๋ค์ ๋ณ๋์ ์ค์น ์์ด ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค.
http | ์น ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ์์ฑ | createServer, request |
fs | ํ์ผ ์์คํ ์์ | readFile, writeFile, mkdir |
path | ํ์ผ ๊ฒฝ๋ก ์ฒ๋ฆฌ | join, resolve, parse |
events | ์ด๋ฒคํธ ์ฒ๋ฆฌ | EventEmitter |
crypto | ์ํธํ ๊ธฐ๋ฅ | hash, cipher, decipher |
url | URL ํ์ฑ ๋ฐ ์ฒ๋ฆฌ | parse, format |
os | ์ด์์ฒด์ ์ ๋ณด ์ ๊ทผ | platform, cpus, totalmem |
util | ์ ํธ๋ฆฌํฐ ํจ์ | promisify, inspect |
์ธ๋ถ ๋ชจ๋
Node.js์์๋ npm์ ํตํด ์ธ๋ถ ๋ชจ๋์ ์ค์นํ๊ณ ์ฌ์ฉํ ์ ์๋ค. ์ธ๋ถ ๋ชจ๋์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ค์ด ๊ณต์ ํ ์ฝ๋ ํจํค์ง๋ก, ์ด๋ฅผ ํ์ฉํ๋ฉด ๊ฐ๋ฐ ์๋์ ํจ์จ์ฑ์ ํฌ๊ฒ ๋์ผ ์ ์๋ค.
์ธ๋ถ ๋ชจ๋์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ npm์ ํตํด ์ค์น๋ฅผ ํด์ผ ํ๋ค.
npm install ๋ชจ๋๋ช
npm i ๋ชจ๋๋ช
๋ชจ๋๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ์ฐจ์ด์ ์ดํดํ๊ธฐ
๋ชจ๋
์์ ์ฝ๋ ๋จ์. ์ผ๋ฐ์ ์ผ๋ก ๋จ์ผ ํ์ผ ๋๋ ๊ธด๋ฐํ๊ฒ ์ฐ๊ด๋ ์์์ ํ์ผ
๋ผ์ด๋ธ๋ฌ๋ฆฌ
๊ฐ๋ฐ์๊ฐ ํ์ํ ๊ธฐ๋ฅ๋ง ์ ํ์ ์ผ๋ก ๊ฐ์ ธ์ ํ์ตํ ์ ์๋ ์ฝ๋ ๋ชจ์. ๊ด๋ จ ๊ธฐ๋ฅ์ ์ํํ๋ ๋ชจ๋๋ค์ ์งํฉ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ๊ธฐ๋ฅ์ ์ง์ ๊ตฌํํ์ง ์๊ณ ๋ ํ์ํ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋ค.
โ
์ฅ์ :
- ํ์ํ ๊ธฐ๋ฅ๋ง ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ด์ ์ ์ฐํ๋ค.
- ๊ฐ๋ฐ์๊ฐ ์ฝ๋์ ํ๋ฆ์ ์ ์ดํ ์ ์๋ค.
- ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ์ต์ ํ๋ ๋๊ตฌ๋ฅผ ์ ํํ ์ ์๋ค.
โ ๋จ์ :
- ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ๊ณ ์ ํํ๋ ๋ฐ ์๊ฐ์ด ์์๋ ์ ์๋ค.
- ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์กฐํฉํด ์ฌ์ฉํ ๋ ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง๋ค ํ์ต ๊ณก์ ์ด ์กด์ฌํ๋ค.
๐ก์์:
- JQuery, React, Axios, Lodash ๋ฑ
ํ๋ ์์ํฌ
์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ ํ
๊ฐ๋ฐ์๋ ํ ์์์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ, ํ๋ ์์ํฌ๊ฐ ์ ํ ๊ท์น๊ณผ ํจํด์ ๋ฐ๋ผ์ผ ํ๋ค. ํ๋ ์์ํฌ๋ "๋ง๋ค๊ณ ์ถ์ ์๋น์ค๋ฅผ ๊ตฌํํ๋๋ฐ ํ์ํ ๋ชจ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ ํ"์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
โ
์ฅ์ :
- ์ผ๊ด๋ ์ฝ๋ ๊ตฌ์กฐ์ ํจํด ์ ์ง
- ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ค์ด ์ด๋ฏธ ๊ตฌํ๋์ด ์์ด ๊ฐ๋ฐ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ ํฉํ๋ค.
โ ๋จ์ :
- ํ๋ ์์ํฌ์ ๊ท์น์ ๋ฐ๋ผ์ผ ํ๋ฏ๋ก ์์ ๋๊ฐ ์ ํ๋ ์ ์๋ค.
- ํ์ต ๊ณก์ ์ด ๊ฐํ๋ฅผ ์ ์๋ค.
- ๋ถํ์ํ ๊ธฐ๋ฅ๊น์ง ํฌํจ๋ ์ ์์ด, ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฌด๊ฑฐ์์ง ์ ์๋ค.
๐ก์์:
- Angular, Vue.js, Express, Django, Spring ๋ฑ
โญ Node.js๋ ํ๋ ์์ํฌ๊ฐ ์๋๋ผ ๋ฐํ์ ํ๊ฒฝ์ด๋ค.
๐ฅNPM
npm(Node Package Manager)์ Node.js์ ๊ธฐ๋ณธ ํจํค์ง ๊ด๋ฆฌ์๋ก, ์ธ๋ถ ๋ชจ๋์ ์ฝ๊ฒ ์ค์นํ๊ณ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค. npm ๋๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ๋ ํฌ๊ฒ ์ฑ์ฅํ ์ ์์๊ณ , ๊ฐ๋ฐ์๋ค์ ์๋ง์ ์คํ ์์ค ํจํค์ง๋ฅผ ๊ณต์ ํ๊ณ ํ์ฉํ ์ ์๊ฒ ๋์๋ค.
loading-card
loading-ui. Latest version: 1.0.1, last published: 7 years ago. Start using loading-card in your project by running `npm i loading-card`. There are no other projects in the npm registry using loading-card.
www.npmjs.com
Package.json
npm์ ์ฌ์ฉํ ๋ ํต์ฌ์ด ๋๋ ํ์ผ์ package.json์ด๋ค. ์ด ํ์ผ์๋ ํ๋ก์ ํธ์ ๋ฉํ๋ฐ์ดํฐ์ ํจ๊ป ์์กด์ฑ(dependency)์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค. pacakage.json ๋๋ถ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค๋ ๊ฐ์ ํ๊ฒฝ์์ ํ๋ก์ ํธ๋ฅผ ์ฝ๊ฒ ์ค์ ํ ์ ์๋ค.
npm ์ฌ์ฉ ์์:
figlet์ด๋ผ๋ ์์คํค ์ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํด๋ณด์๋ค.
npm i figlet
์ค์น๊ฐ ์๋ฃ๋๋ฉด, node_modules ํด๋๊ฐ ์์ฑ๋๊ณ , package.json์ figlet์ด ์์กด์ฑ์ผ๋ก ์ถ๊ฐ๋๋ค. ์ด์ figlet์ ํ์ฉํ์ฌ ์์คํค ์ํธ๋ฅผ ์์ฑํ ์ ์๋ค.
var figlet = require("figlet");
figlet("MONICX", function (err, data) {
if (err) {
console.log("Something went wrong...");
console.dir(err);
return;
}
console.log(data);
});

npm ํจํค์ง ์ญ์ ํ๊ธฐ
npm uninstall ํจํค์ง๋ช
โฉ๏ธ์ฝ๋ฐฑ ํจ์์ ์ค์ฝํ
์ฝ๋ฐฑ ํจ์
๋ค๋ฅธ ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋์ด, ํน์ ์์ ์ ํธ์ถ๋๋ ํจ์. Node.js์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์์ ์ฝ๋ฐฑ ํจํด์ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํ๋ค.
๋ค์์ Node.js๋ก ๊ฐ๋จํ ์๋ฒ๋ฅผ ๋ง๋๋ ์์ ์ด๋ค.
let http = require('http');
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write(data);
response.end();
}
http.createServer(onRequest).listen(8888);
- onRequest ํจ์๋ http.createServer()์ ์ฝ๋ฐฑ ํจ์๋ก ์ ๋ฌ๋๋ค. ์๋ฒ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Node.js๋ ์ด ์ฝ๋ฐฑ ํจ์๋ฅผ ํธ์ถํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
์ค์ฝํ
๋ณ์๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ๊ฒฐ์
var
, let
, const
๋ ๊ฐ๊ฐ ๋ค๋ฅธ ์ค์ฝํ ๊ท์น์ ๊ฐ์ง๋ค.
if(true){
var num1 = 7;
const num2 = 3;
let num3 = 5;
}
console.log(num1);
console.log(num2); //const๋ ๋ธ๋ก ์ค์ฝํ์ฌ์ {} ๋ฐ์์ ์ฌ์ฉ ๋ถ๊ฐ
console.log(num3); //let๋ ๋ธ๋ก ์ค์ฝํ
- var์ ํจ์ ์ค์ฝํ๋ฅผ ๊ฐ์ง๋ฏ๋ก if ๋ธ๋ก ๋ฐ์์๋ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
- const์ let์ ๋ธ๋ก ์ค์ฝํ๋ฅผ ๊ฐ์ง๋ฏ๋ก ์ ์ธ๋ ๋ธ๋ก({}๋ด๋ถ) ๋ฐ์์๋ ์ ๊ทผํ ์ ์๋ค.
Node.js์ ๋ ผ๋ธ๋กํน I/O ํน์ฑ๊ณผ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ค์ต ์ฝ๋๋ฅผ ํตํด ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์๋ ๊ฒ ๊ฐ๋ค. ์ฐ๋ฆฌ๋๋ผ๋ ์คํ๋ง์ด ๊ทธ๋ฅ ์์ GOAT ์งฑ์งฑ ๋ฐฑ์๋ ํ๋ ์ํฌ์ธ๋ฐ, Stack Overlow survey์์๋ Node.js๊ฐ ๋น๊ต๋ ์๋ ์ ๋๋ก ๋์์ ๋๋ผ์ ๋ค...์ฐ๋ฆฌ๋๋ผ๋ Node.js๊ฐ ๋จน์ด์น์์ฃผ๋ฉด ์ข๊ฒ ๊ตฌ๋ง