5. NestJS (1)
NestJS는 Node.js 위에서 동작하는 TypeScript용 오픈소스 백엔드 프레임워크입니다. 이때, NestJS는 하나의 독립적인 프레임워크가 아니라 내부적으로 기존의 웹 프레임워크들의 기능을 일관된 API로 노출해 주는 거대한 어댑터(Adapter)에 가깝습니다. 이러한 NestJS는 Express 또는 Fastify를 래핑하여 동작합니다.
이번 시간에는 코드당에서 현재 사용중인 백엔드 프레임워크 ‘NestJS’에 대해 알아봅니다. 😄
NestJS는 총 2주차에 걸쳐서 공부하기 때문에 부담갖지 말고 차근차근 알아보세요!
공부할 내용 📚
1. Why NestJS? 🦁
NestJS는 현재 전세계적으로 사용량이 꾸준히 증가하고 있습니다. 국내에서도 NestJS를 사용하는 스타트업들이 여러곳 있기도 하구요.
실제로 현재(2023년 10월) Express의 Github Star 수는 62.2k이고, NestJS는 60.6k로 가파르게 성장하는 것을 보실 수 있습니다.
왜 사람들은 백엔드 프레임워크로 Express 대신 NestJS를 선택한 것일까요? 그 이유에 대해 간단하게 알아봅시다.
여담으로, 코드당 프로젝트도 원래 Django로 개발을 진행하다가 NestJS로 migrate했답니다. 그 과정이 궁금하시다면 코드당 노션의 **칼럼 📰**을 확인해주세요!
- Node.JS의 새로운 파트너 NestJS는 왜 탄생했을까? : NestJS의 기본적인 소개에 대한 글입니다. 천천히 읽어보세요!
2. NestJS 공부하기 📝
이제 NestJS에 대해 공부해볼 단계입니다. 😆
NestJS는 공식 문서화가 잘되어있는 편이라, 공식 문서 위주로 공부하는 것을 추천드려요!
- NestJS Docs : NestJS 공식문서입니다!
- Overview에서 Exception Filters 까지만 살펴봐주세요!
- 인프런 NestJS : 탄탄한 백엔드 NestJS, 기초부터 심화까지: 만약 공식문서가 잘 이해되지 않으신다면 인프런 강의를 대신 들어도 괜찮아요.
- 이외에도 구글링하면 여러 정보가 있으니 참고하시면 더 이해가 잘 되실거에요.
프로젝트 실습 🎈
이번 주차는 저번 주차에서 만들었던 express 기반 코드를 nestjs로 migrate해볼 예정입니다. 먼저, 아래의 환경세팅을 참고해서 설정해주세요!
환경설정 ⚙️
npm i -g @nestjs/cli
로 nestjs CLI 설치하기- 생성할 프로젝트 이름으로 새로운 nest 프로젝트 생성 ( 예시 :
nest new project_name
)nest g mo restaurant(원하는 이름대로!)
으로 모듈 생성하기nest g co restaurant
으로 controller도 추가해주기nest g s restaurant
으로 service도 추가해주기- 서버 시작은
nest start:dev
(변경된 파일 있으면 재시작) 혹은nest start
를 이용해주시면 됩니다!package.json
에 자세히 있으니 참고해주세요.
- 이번, 다음 주차의 과제는 이전에 express로 작성했던 과제를 nestjs으로 migrate하는 것입니다.
- 이번 주차에서는 간단하게 restaurant 모듈을 만들고, 이전에 express로 작성했던 코드를 nestjs로 옮기기만 하면 됩니다!
- 다음 주차에서는, 이번 주차에 작성한 코드를 바탕으로 exception filter, pipe, middleware 등 배운 개념들을 더욱 확장시켜볼 예정입니다 🙂