Search

#018 #NestJS 개발환경 세팅

 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! 가 찍힌다. 서버가 정상 작동하고 있다는 뜻!