๐๏ธ NestJS๋ ๋ฌด์์ธ๊ฐ?
๐ ํต์ฌ ์์ฝ
• TypeScript ๊ธฐ๋ฐ Node.js ํ๋ ์์ํฌ • ๋ฐ์ฝ๋ ์ดํฐ ํจํด • ์์กด์ฑ ์ฃผ์ • ์ํฐํ๋ผ์ด์ฆ๊ธ ์ํคํ ์ฒ
NestJS๋ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ Node.js ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. ๐ TypeScript๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ, Angular์ ์ํคํ ์ฒ ํจํด์์ ์๊ฐ์ ๋ฐ์ ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ต์ ํ๋์ด ์์ต๋๋ค.
NestJS์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฐ์ฝ๋ ์ดํฐ ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ๋๋ค. ๐ ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ง๊ด์ ์ด๊ณ ์ ์ธ์ ์ธ ๋ฐฉ์์ผ๋ก ๋ผ์ฐํ , ์์กด์ฑ ์ฃผ์ , ๋ฏธ๋ค์จ์ด ๋ฑ์ ์ ์ํ ์ ์์ต๋๋ค. ๋ํ ๋ชจ๋ ์์คํ ์ ํตํด ์ฝ๋์ ๊ตฌ์กฐํ์ ์ฌ์ฌ์ฉ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
๐ฏ NestJS ํต์ฌ ํน์ง
NestJS๋ ์ฌ๋ฌ ํ์ ์ ์ธ ํน์ง๋ค์ ํตํด ํ๋์ ์ธ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์๋ก์ด ํ์ค์ ์ ์ํฉ๋๋ค:
์นดํ ๊ณ ๋ฆฌ | ํน์ง | ์ค๋ช | ์ฅ์ |
---|---|---|---|
ํต์ฌ ๊ธฐ๋ฅ | ๋ฐ์ฝ๋ ์ดํฐ ํจํด | @Controller, @Service, @Module ๋ฑ | โ ์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ |
ํต์ฌ ๊ธฐ๋ฅ | ์์กด์ฑ ์ฃผ์ | IoC ์ปจํ ์ด๋ ๊ธฐ๋ฐ DI | โ ํ ์คํธ ์ฉ์ด์ฑ |
์ฑ๋ฅ ๊ด๋ จ | ๊ธฐ๋ณธ Express ๊ธฐ๋ฐ | Express/Fastify ์ ํ ๊ฐ๋ฅ | โ ๋์ ์ฑ๋ฅ |
๊ฐ๋ฐ ๊ฒฝํ | TypeScript ๊ธฐ๋ณธ ์ง์ | ํ์ ์์ ์ฑ ๋ณด์ฅ | โ ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์ |
๊ฐ๋ฐ ๊ฒฝํ | CLI ๋๊ตฌ | ์๋ ์ฝ๋ ์์ฑ ๋ฐ ์ค์บํด๋ฉ | โ ๋น ๋ฅธ ๊ฐ๋ฐ ์๋ |
๐ Express vs NestJS ๋น๊ต
๊ธฐ์กด์ Express.js์ ๋น๊ตํ์ ๋ NestJS๋ ์ด๋ค ์ฐจ์ด์ ๊ณผ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์๊น์? ๐ ๋ค์ ํ๋ฅผ ํตํด ์์ธํ ๋น๊ตํด๋ณด๊ฒ ์ต๋๋ค:
์นดํ ๊ณ ๋ฆฌ | ๊ตฌ๋ถ | Express.js | NestJS |
---|---|---|---|
ํต์ฌ ๊ธฐ๋ฅ | ์ํคํ ์ฒ | ๋ฏธ๋๋ฉ๋ฆฌ์คํธ, ์์ ๋ ๋์ | โ ๊ตฌ์กฐํ๋ ์ํคํ ์ฒ |
ํต์ฌ ๊ธฐ๋ฅ | ์์กด์ฑ ์ฃผ์ | โ ๊ธฐ๋ณธ ์ง์ ์์ | โ ๋ด์ฅ DI ์ปจํ ์ด๋ |
๊ฐ๋ฐ ๊ฒฝํ | TypeScript | ์๋ ์ค์ ํ์ | โ ๊ธฐ๋ณธ ์ง์ |
๊ฐ๋ฐ ๊ฒฝํ | ๋ณด์ผ๋ฌํ๋ ์ดํธ | ๋ง์ ์๋ ์ค์ | โ ์ต์ํ์ ์ค์ |
์ฑ๋ฅ ๊ด๋ จ | ํ์ฅ์ฑ | ๊ฐ๋ฐ์ ์ญ๋์ ์์กด | โ ์ํฐํ๋ผ์ด์ฆ๊ธ ํ์ฅ์ฑ |
๊ธฐํ/์ฐธ๊ณ | ํ์ต ๊ณก์ | โ ๋ฎ์ | ์ค๊ฐ-๋์ |
๐ ๏ธ ์ค์ ํ๋ก์ ํธ ์์ํ๊ธฐ
NestJS ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๐ `npm i -g @nestjs/cli`๋ก CLI๋ฅผ ์ค์นํ ํ, `nest new project-name`์ผ๋ก ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ค์ ๊ฐ๋ฐ์์๋ ๋ชจ๋ ๊ตฌ์กฐ ์ค๊ณ๊ฐ ํต์ฌ์ ๋๋ค. ๐ฏ ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋์ ๋ถ๋ฆฌํ๊ณ , Controller, Service, Repository ํจํด์ ํ์ฉํ์ฌ ๊ณ์ธตํ๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ UserModule๋ก ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋๋ ๋งค์ฐ ๊ฐํธํฉ๋๋ค. ๐๏ธ TypeORM, Prisma, Mongoose ๋ฑ ๋ค์ํ ORM์ ์ง์ํ๋ฉฐ, ๋ฐ์ฝ๋ ์ดํฐ ๊ธฐ๋ฐ ์ํฐํฐ ์ ์๋ฅผ ํตํด ํ์ ์์ ์ฑ์ ๋ณด์ฅํ๋ฉด์๋ ๊ฐ๋ฐ ์์ฐ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
๐ฏ ๊ฒฐ๋ก
NestJS๋ ํ๋์ ์ธ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์๋ก์ด ํ์ค์ ์ ์ํ๋ ํ์ ์ ์ธ ํ๋ ์์ํฌ์ ๋๋ค. ๐ TypeScript ๊ธฐ๋ฐ์ ํ์ ์์ ์ฑ๊ณผ Angular ์คํ์ผ์ ์ํคํ ์ฒ๋ฅผ ํตํด ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํฌ๊ฒ ๋จ์ํํ์ต๋๋ค.
ํนํ ์์กด์ฑ ์ฃผ์ ๊ณผ ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ํตํ ์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ์ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค. โก ๋ํ ํ๋ถํ ์ํ๊ณ์ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ํตํด ๋ค์ํ ํ์ฅ ๋ชจ๋๊ณผ ํ๋ฌ๊ทธ์ธ์ ํ์ฉํ ์ ์์ด ๊ฐ๋ฐ ์์ฐ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
๋ฌผ๋ก Express.js์ ๋นํด ๋์ ํ์ต ๊ณก์ ์ด ์กด์ฌํ์ง๋ง, ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ๋ณผ ๋ ํฌ์ํ ๊ฐ์น๊ฐ ์ถฉ๋ถํ ๊ธฐ์ ์ ๋๋ค. ๐ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ ์ถ๋ค๋ฉด, NestJS๋ ์ต๊ณ ์ ์ ํ์ ๋๋ค.
'made-by-AI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
NestJS ์์ ์ ๋ณต NestJS์ ๋ด์ฅ๋์ด ์๋ ๊ธฐ๋ฅ๋ค (2) | 2025.06.08 |
---|---|
Next.js 15: App Router์ Server Components ์์ ์ ๋ณต (1) | 2025.06.08 |
Cursor๊ฐ ์๊ฐ๋ฅผ ํ๋ Cursor (3) | 2025.06.08 |