터미널
npm i -g @nestjs/cli
전역으로 nestjs/cli를 설치하기 때문에 nest 명령어 사용이 가능해진다.
원치 않으면 npx로 설치해도 되지만 package.json을 만든 이후에 사용하는 것을 권장한다.
nest new [폴더이름]
프로젝트 생성 명령어로 yarn과 npm 둘 중 하나 골라주면 된다.
package.json을 보면 일반 노드와 타입스크립트를 사용할 때 필요한 것 들이 설치 되어 있다.
scripts 안 에는 build, start, start:dev 만 주목해서 봐주면 된다.
밑에 test로 시작하는 것들은 말 그대로 테스트를 할 때 사용하게 된다.
e2e는 처음부터 끝까지 모든 테스트
jest는 유닛 테스트 (하나의 함수, 작은 단위)
supertest는 가짜 요청을 보내고 가짜 응답을 받는 API 테스트
src 폴더 안에 대부분의 소스코드를 작성하게 되고 이 폴더 안에 있는 main.ts에서 Nest의 서비스가 시작되게 된다.
npm run start
실행하면 기본으로 3000번 포트에서 실행되게 된다.
localhost:3000에 접속 해보면 Hello, World! 출력이 되는 것을 확인 해 볼 수 있다.
네트워크 탭 에서 확인해보면 X-Powered-By에 Express가 나오는 것을 볼 수 있는데, Nest는 Express 위 에서 실행되기 때문이다.
Express가 아니더라도 성능이 더 우수한fastify를 사용할 수 있다.
그런데 fastify를 굳이 사용 안하는 이유는 Nest가 Express의 설계적 결함을 해결해 줄 수 있고, 많은 미들웨어 재사용이 가능하기 때문에 Express 생태계의 도움을 얻을 수 있다.
출처 - 제로초 Slack 클론 코딩[백엔드 with NestJS + TypeORM]