요즘에 Nest.js에 관심이 생겨서 한 번 배워보려고 합니다 ㅎㅎ! 기존에 새싹에서 Express와 Spring을 다뤘었고 프로젝트도 Express로는 두번, Spring으로는 한번 해봤었는데 Nest.js는 새로운 기술이라서 도전해보고 싶었습니다! 요즘에 뜨고 있기도 하구요!! Express를 요즘엔 대부분 Nest.js로 바꾸는 추세더라구요!
좀 더 다양한 프로젝트에 활용할 수 있는 역량을 키우고 싶기도하고,,,, 그래서 오늘은 Nest.js에 대한 소개를 한번 해보려 합니다!
1. NestJs란?

Nest(NestJs)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임 워크입니다. 프로그레시브 javascript를 사용하고 TypeScript로 빌드되고 완벽하게 지원하며(개발자가 순수 js로 코딩할 수도 있습니다만 그러진 않겠죠,,)OOP(Object Oriented Programming), FP(Functional Programming) 및 FRP(Functional Reactive Programming)요소를 사용할 수 있게 해줍니다.
2. NestJs는 내부적으로 어떻게 구성되었나요?
내부적으로 Nest는 Express와 같은 강력한 HTTP 서버 프레임 워크를 사용하며 선택적으로 Fastify를 사용하도록 구성 할 수도 있습니다.
**Fastify는 Express보다 더욱 빠르고 경량화되어 있습니다. 이는 더 적은 리소스를 사용하여 더 빠른 속도와 더 나은 성능을 제공할 수 있음을 의미합니다. 특히, 대규모의 웹 애플리케이션 또는 마이크로서비스 아키텍처에서 성능이 중요한 경우 Fastify를 사용하는 것이 유리할 수 있습니다.
Nest는 이러한 공통 NodeJs 프레임 워크(Express/Fastify)위에 추상화 수준을 제공하지만 API를 개발자에게 직접 노출합니다. 이를 통해 개밸자는 기본 플랫폼에서 사용할 수 있는 수많은 타사 모듈을 자유롭게 사용할 수 있습니다!
3. NestJs의 철학
철학이라,,, 거창해보이지만..
Node(및 서버 측 Javascript)를 위한 훌륭한 라이브러리, 도우미 및 도구가 많이 존재하지만 이들 중 어느것도 아키텍쳐의 주요 문제를 효과적으로 해결하지 못합니다.
NestJs는 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고 유지 관리가 쉬운 애플리케이션을 만들 수 있는 즉시사용 가능한 애플리케이션 아키텍쳐를 제공합니다. (Angular에서 영감을 받앗다고 합니다!!)
기존 ExpressJs를 사용하면 testing 기능, Typescript등등 많은 것들을 덧붙여주어야 했는데, Nest는 이런것들이 내장되어 있다고 합니다! 이 이유때문에 저는 Nest를 배워보고 싶었어용 ㅎㅎ
더 자세한 내용은 NestJs 공식문서를 참고해시면 좋을 것 같습니다!
Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea
docs.nestjs.com
4. NestJs 설치하기
NestJs를 이용해서 프로젝트를 시작할 때 NestCLI를 이용하면 간단히 프로젝트를 시작할 수 있습니다!
그럼 NestCLI를 함께 설치해봅시다!
"npm i -g @nestjs/cli"
kimseeun@gimseeuns-MacBook-Air ~ % npm i -g @nestjs/cli
added 286 packages in 18s
61 packages are looking for funding
run `npm fund` for details
이렇게 하면 NestJs CLI가 설치됩니다!
5. NestJs 프로젝트 만들어보기
"nest new [nestJs프로젝트 폴더 명]"
아까전에 nestJs CLI를 설치했기 때문에 이 명령어로 nest 프로젝트를 만들 수 있습니다!
kimseeun@gimseeuns-MacBook-Air documents % nest new nestjs-test
⚡ We will scaffold your app in a few seconds..
? Which package manager would you ❤️ to use? npm
CREATE nestjs-test/.eslintrc.js (663 bytes)
CREATE nestjs-test/.prettierrc (51 bytes)
CREATE nestjs-test/README.md (3340 bytes)
CREATE nestjs-test/nest-cli.json (171 bytes)
CREATE nestjs-test/package.json (1951 bytes)
CREATE nestjs-test/tsconfig.build.json (97 bytes)
CREATE nestjs-test/tsconfig.json (546 bytes)
CREATE nestjs-test/src/app.controller.ts (274 bytes)
CREATE nestjs-test/src/app.module.ts (249 bytes)
CREATE nestjs-test/src/app.service.ts (142 bytes)
CREATE nestjs-test/src/main.ts (208 bytes)
CREATE nestjs-test/src/app.controller.spec.ts (617 bytes)
CREATE nestjs-test/test/jest-e2e.json (183 bytes)
CREATE nestjs-test/test/app.e2e-spec.ts (630 bytes)
✔ Installation in progress... ☕
🚀 Successfully created project nestjs-test
👉 Get started with the following commands:
$ cd nestjs-test
$ npm run start
Thanks for installing Nest 🙏
Please consider donating to our open collective
to help us maintain this package.
🍷 Donate: https://opencollective.com/nest
이렇게 만들고!
kimseeun@gimseeuns-MacBook-Air documents % cd nestjs-test
kimseeun@gimseeuns-MacBook-Air nestjs-test % code .
해당 프로젝트로 이동해서
vscode를 열어주면!!
짠! 이렇게 생긴 파일들이 생성되어 있는 걸 볼 수 있습니다!
신기하게 test파일도 함께 생성되어있습니다! tdd에 용이하겠죠?
다음 포스팅에서는 각각의 폴더와 파일들이 어떤 역할을 하는지도 한번 살펴보고 직접 코드도 쳐보도록 하겠습니다!
'NestJs' 카테고리의 다른 글
nestjs에서 aop 적용하기(feat. nestjs는 어떻게 데코레이터를 등록할까?) (0) | 2025.03.23 |
---|---|
NestJs 최신버전 업데이트 및 스터디 시작 (0) | 2024.02.06 |
[NestJs] NestJs 기본 요소 (0) | 2024.01.29 |