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했답니다. 그 과정이 궁금하시다면 코드당 노션의 **칼럼 📰**을 확인해주세요!

2. NestJS 공부하기 📝

이제 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 등 배운 개념들을 더욱 확장시켜볼 예정입니다 🙂