-
[Node.js] NestJS๋?๐ Node.js 2026. 8. 17. 12:58
1. NestJS๋ฅผ ์์๋ณด๊ธฐ ์ ์ ๐
Node.js๋ก ๋ฐฑ์๋ ์๋ฒ๋ฅผ ๊ฐ๋ฐํด๋ดค๋ค๋ฉด ํ ๋ฒ์ฏค Express.js๋ผ๋ ํ๋ ์์ํฌ๋ฅผ ์ ํด๋ดค์ ๊ฒ์ด๋ค.
Express.js๋ Node.js์์ ์๋ฒ๋ฅผ ๋ง๋ค ๋ ๋ง~์ด ์ฌ์ฉํ๋ ์น ํ๋ ์์ํฌ๋ก, ๊ฐ๋จํ API๋ถํฐ ๊ท๋ชจ๊ฐ ์๋ ์๋ฒ๊น์ง ๋ค์ํ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์๋ค.
๊ฐ๋จํ ์๋ฅผ ๋ค์ด Express์์๋ ์๋์ฒ๋ผ ๊ฐ๋จํ๊ฒ API๋ฅผ ๋ง๋ค ์ ์๋ค.
const express = require('express'); const app = express(); app.get('/hello', (req, res) => { res.json({ message: 'Hello World' }); }); app.listen(3000, () => { console.log('Server started'); });์ฝ๋๊ฐ ๋น๊ต์ ๊ฐ๊ฒฐํ๋ฉด์ ์์ ๋๊ฐ ๋๋ค๋ ๊ฒ์ด Express์ ์ฅ์ ์ด๋ค.
ํ์ง๋ง ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด์ ๊ธฐ๋ฅ์ด ๋ง์์ง๋ฉด ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
src/ โโโ routes/ โโโ controllers/ โโโ services/ โโโ middleware/ โโโ models/ โโโ utils/ โโโ ...ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ์ปค์ง์๋ก ๋ณต์ก๋๋ ์ฌ๋ผ๊ฐ๋ค.
ํ๋ก์ ํธ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํ์ด๋ ํ๋ก์ ํธ์ ๋ฐ๋ผ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง ์ ์์ผ๋ฉฐ
๊ธฐ๋ฅ์ด ๋ง์์ง์๋ก ์ฝ๋์ ์ญํ ์ ๋ช ํํ๊ฒ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํด์ง๋ค.
NestJS๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค.
2. NestJS๋? ๐ก
NestJS๋ Node.js๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ค.
ํนํ TypeScript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์กฐํ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค.
NestJS๋ ๋ด๋ถ์ ์ผ๋ก Express๋ฅผ ๊ธฐ๋ณธ HTTP ํ๋ซํผ์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ค์ ์ ๋ฐ๋ผ Fastify๋ ์ฌ์ฉํ ์ ์๋ค.
์ฝ๊ฒ ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Node.js ↓ ์น ์๋ฒ๋ฅผ ๋ง๋ค ์ ์๋ JavaScript ๋ฐํ์ ↓ Express ↓ Node.js์์ ์น ์๋ฒ๋ฅผ ์ฝ๊ฒ ๋ง๋ค๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ ↓ NestJS ↓ ๋๊ท๋ชจ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ์ ์ผ๋ก ๊ฐ๋ฐํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ฆ, NestJS๋ ๋จ์ํ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ๋ง ์ ๊ณตํ๋ ๊ฒ์ด ์๋๋ผ,
- ํ๋ก์ ํธ ๊ตฌ์กฐ
- ๋ชจ๋ํ
- ์์กด์ฑ ์ฃผ์
- ์ธ์ฆ ๋ฐ ๊ถํ ์ฒ๋ฆฌ
- ์์ฒญ ๋ฐ์ดํฐ ๊ฒ์ฆ
- ์์ธ ์ฒ๋ฆฌ
- ํ ์คํธ
๋ฑ์ ์ฒด๊ณ์ ์ผ๋ก ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ค๋ค.
3. NestJS๋ ์ ๋ง๋ค์ด์ก์๊น? ๐คท
Express์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ์์ ๋กญ๋ค๋ ๊ฒ์ด๋ค.
๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
ํ์ง๋ง ์์ ๋กญ๋ค๋ ๊ฒ์ ๋ฐ๋๋ก ๋งํ๋ฉด ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฒฐ์ ํด์ผ ํ๋ค๋ ์๋ฏธ์ด๊ธฐ๋ ํ๋ค.
์๋ฅผ ๋ค์ด ๊ฐ๋ฐ์ A๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
src/ โโโ routes/ โโโ controllers/ โโโ services/๊ฐ๋ฐ์ B๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์๋ ์๋ค.
src/ โโโ api/ โ โโโ user/ โ โโโ auth/ โ โโโ document/ โโโ common/๋ ๋ค ํ๋ฆฐ ๊ตฌ์กฐ๋ ์๋๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๋ช ์ ๊ฐ๋ฐ์๊ฐ ํจ๊ป ๊ฐ๋ฐํ๊ฑฐ๋ ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ์ผ์ ํ ๊ท์น์ด ์๋ ๊ฒ์ด ๊ด๋ฆฌํ๊ธฐ ํจ์ฌ ์์ํ๋ค.
NestJS๋ ์ด๋ฐ ๋ถ๋ถ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ์ ํ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ค๋ค.
'๐ Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js] NestJS ์ฃผ์ ๊ธฐ๋ฅ ์์๋ณด๊ธฐ(DTO, Validation, Guard, ์ธ์ฆ๊ณผ ์์ธ์ฒ๋ฆฌ) (0) 2026.08.17 [Node.js] NestJS ๊ตฌ์กฐ ์ดํดํ๊ธฐ (0) 2026.08.17 [Node.js] JWT(Json Web Token)๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ ์ธ์ฆ ๊ตฌํ (0) 2026.07.14 cloudflare R2 ์ฐ๋ (1) 2026.04.07 [Node.js] Express๋? (์ ์ ๋ฐ ์ฌ์ฉ๋ฒ) (0) 2024.11.07