Node.js 설치
- NestJS는 Node.js를 기반으로 합니다. 먼저 Node.js 공식 페이지를 통해 자신에게 맞는 버전을 설치합니다. 안정적인 버전인 LTS를 선택하고 다운로드 후 설치파일을 실행하거나 소스코드에서 직접 빌드 후 설치합니다. 자세한 방법은 홈페이지를 참조하세요.
NestJS 프로젝트 생성
- Node.js를 설치하면 npm이 함께 설치되어 있습니다. npm은 Node.js에서 사용하는 패키지 관리자입니다. https://www.npmjs.com/ 에 등록된 라이브러리1들을 쉽게 설치, 삭제할 수 있게 해 줍니다.
- NestJS 서버를 구성하기 위해 먼저 @nestjs/cli 를 설치해야 합니다. 다음 명령어를 콘솔에 입력해 봅시다.
- npm i -g @nestjs/cli
- i 명령어는 install 명령어의 약어입니다. -g 옵션은 컴퓨터의 글로벌 환경에 설치하겠다는 것으로, 모든 디렉토리에서 참조할 수 있습니다. 참고로 글로벌 환경에서 패키지가 설치되는 경로는 npm root -g 명령어로 확인할 수 있습니다.
- 설치가 끝났으면 프로젝트 초기화를 해 봅시다.
- nest new project-name
- project-name을 적당한 것으로 바꾸어 입력합니다. 설치 도중 패키지 매니저를 어느 것으로 할 지 묻는데 선호하는 것으로 선택합니다. 저는 npm으로 선택하였습니다. 참고로 yarn은 npm과 함께 많이 쓰이는 자바스크립트 라이브러리 패키지 매니저 입니다. npm과 마찬가지로 라이브러리간 의존성을 관리할 수 있습니다.
설치를 마치면 보일러 플레이트2 코드를 생성해 줍니다.
- 플레이트 코드
- ├── README.md
- ├── nest-cli.json
- ├── node_modules
- ├── package-lock.json
- ├── package.json
- ├── src
- │ ├── app.controller.spec.ts
- │ ├── app.controller.ts
- │ ├── app.module.ts
- │ ├── app.service.ts
- │ └── main.ts
- ├── test
- │ ├── app.e2e-spec.ts
- │ └── jest-e2e.json
- ├── tsconfig.build.json
- └── tsconfig.json
TypeScript Starter
- https://github.com/nestjs/typescript-starter 에서 시작해도 좋습니다. nestjs/typescript-starter가 nest new로 프로젝트를 셋업한 것 보다 더 최신 버전의 라이브러리들로 구성해 줍니다.
- 서버를 실행하기 위해 프로젝트가 설치된 경로로 이동한 후, 다음의 명령어를 입력합니다. 이 책에서는 book-nestjs-backend라는 이름으로 프로젝트를 생성하였습니다. 이 책의 소스코드는 github 저장소에서 다운로드 받을 수 있습니다.
$ git clone https://github.com/dextto/book-nestjs-backend.git
$ cd book-nestjs-backend/examples/ch1-intro/
$ npm install // 필요한 패키지를 설치합니다.
$ npm run start
운영 서버가 아닌 개발 단계에서는 npm run start:dev 명령어를 이용하시길 바랍니다.
- package.json에 기술된 스크립트를 보면 "start:dev": "nest start --watch" 라고 되어 있습니다.
- —watch 옵션으로 소스코드 변경을 감지하여 코드를 저장할 때 마다 서버를 다시 구동시켜 줍니다.
- 서버가 localhost에서 구동되었습니다.
$ npm run start
> book-nestjs-backend@1.0.0 start
> nest start
[Nest] 13383 - 2021-09-10 9:38:54 LOG [NestFactory] Starting Nest application...
[Nest] 13383 - 2021-09-10 9:38:54 LOG [InstanceLoader] AppModule dependencies initialized +27ms
[Nest] 13383 - 2021-09-10 9:38:54 LOG [RoutesResolver] AppController {/}: +6ms
[Nest] 13383 - 2021-09-10 9:38:54 LOG [RouterExplorer] Mapped {/, GET} route +3ms
[Nest] 13383 - 2021-09-10 9:38:54 LOG [NestApplication] Nest application successfully started +4ms
- 서버에 접속해서 잘 동작하는지 확인해 봅니다. 😎 포트는 기본으로 3000번으로 설정되어 있는데, main.ts 파일에서 포트를 설정했음을 확인할 수 있습니다.
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
참고사이트
플레이트 코드란?
- 프로젝트를 생성할 때 마다 꼭 필요한 기본 기능을 미리 준비해 놓은 것. 바로 실행해서 서버를 구동할 수 있다.
'Nest.js' 카테고리의 다른 글
Nest.js : 완전한 개발자 가이드 #1 (1) | 2023.03.08 |
---|---|
Node.js란?(Nest.js) (0) | 2023.03.07 |
웹 프레임워크(Nest.js) (0) | 2023.03.07 |
Nest.js vs Express.js(Nest.js) (0) | 2023.03.07 |
Nest.js란? (0) | 2023.03.07 |