NestJS 공식 문서
프로젝트 생성
폴더 생성
test-project로 하나 만들어 보겠다.
프로젝트 폴더로 이동
터미널에서 생성한 프로젝트 폴더로 이동을 해야한다.
nest 패키지 설치
sudo npm i -g @nestjs/cli`
JavaScript
복사
관리자의 권한으로 nest패키지를 설치하는 명령어이다.
설치가 완료되면 nest명령어를 실행할 수 있다.
프로젝트 생성
nest new <프로젝트 이름>
JavaScript
복사
→ 위의 명령어를 실행하면 프로젝트를 생성하는데, 이름은 취향에 맞게 설정하면된다.
→ 그리고 패키지 매니저를 선택하라고 하는데, npm 쓰자 공식문서가 다 그걸로 나와있다.
확인
생성이 완료가 되면, 이렇게 프로젝트 폴더 내부로 프로젝트 폴더랑 구성파일이 생성된 것을 볼 수 있다.
package.json
기본적으로 엄청나게 많은 요소들이 설치된 것을 볼 수 있다.
start : 명령어
package.json을 보면 명령어들이 바인딩이 된 것을 확인할 수 있다.
→ start:dev : 프로젝트를 실행해보는 명령어이다.
→ start:debug : 디버깅할 떄 사용하는 명령어인데, 개발시에 많이 사용한다.
→ start:prod : 배포할 때 많이 사용하는 명렁어이다.
src
src 폴더에 들어오면 여러가지 파일이 보이는데, 이 중 app.controller.spec.ts 파일은
controller를 테스트 하기 위한 파일이라고 생각하면 된다. 공식 문서에 들어가 보면 이에 대한 설명이 있다.
→ app.controller.ts : 하나의 라우트가 있는 기본 컨트롤러
→ app.controller.spec.ts : 컨트롤러를 위한 유닛 테스트
→ app.module.ts : 애플리케이션의 루트 모듈
→ app.service.ts : 단일 메소드를 사용하는 기본 서비스
→ main.ts : 핵심기능 NestFactory를 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 엔트리 파일
AppController 구조
해당 코드 구조는 데코레이터 패턴을 나타내는 구조로서,
기본 라우팅 역할을 하는 controller에 get 요청을 처리하는 곳에 비즈니스로직을 더 처리할 수 있도록 도와주는 패턴이다.
AppService 구조
→ @nestjs/common 에서 @Injectable() 데코레이터를 가져올수 있게 한다. 이 데코레이션이 달리면 해당 클래스가 의존성 주입을 통해서 다른 클래스에 주입될 수 있음을 나타낸다.
→ @Injectable : 해당 데코레이터는 해당 클래스를 nestJS의 의존성 주입 시스템에 등록할 수 있고, 이를 통해 다른 클래스가 해당 서비스를 주입받아 사용할 수 있다.
서버 활성화하기
프로젝트로 이동
일단 서버를 활성화시키기 위해서는 package.json이 있는 폴더로 이동해야 된다.
해당 위치에서 아까 활성화 시키는 코드였던
npm run start:dev
명령어를 실행해 보자.
콘솔 확인
npm run start:dev
를 실행하면 위와 같이 로그가 뜬다.
웹 확인
브라우저로 localhost이든지 127.0.0.1에 포트번호 3000을 요청하면
기본으로 설정된 Hello World! 가 찍힌다. 서버가 정상 작동하고 있다는 뜻!