티스토리 뷰


이번 시간에는 NestJS 프로젝트를 생성하고 로컬 환경에 띄어봅시다.

1. NestJS CLI를 통한 간편한 설치합니다.
(저는 예시로 프로젝트 이름을 happycoding 으로 하였습니다.)

$ npm i -g @nestjs/cli 
$ nest new (프로젝트 이름)


CLI 실행 시 description(설명), version(버전), author(저자)를 물어보는데 원하는 답변을 해주면 됩니다.

저는 아래와 같이 설정하였습니다.


description: 해피코딩

version: 0.0.1

author: 박진우


그 후 package manager를 어떤 것(npm, yarn)으로 사용할 건지 물어보는데 저는 npm을 사용하기 때문에 npm을 적었습니다.


2. CLI를 사용하지 않고 프로젝트 설치

첫 번째는 Git을 사용하는 방법, 두 번째는 NPM을 사용하는 방법이 있다. 하나씩 알아보자.


첫 번째 Git을 이용한 설치

$ git clone https://github.com/nestjs/typescript-starter.git (프로젝트이름)
$ cd project
$ npm install

두 번째 NPM을 이용한 설치

$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata




둘 중 하나의 방법으로 프로젝트를 설치했다면 아래와 같은 폴더 구조가 생성 되었을 것이다.



그럼 이제 src 폴더를 파해쳐 봅시다.

src 폴더를 보면 아래와 같다. 하나씩 살펴보자.



app.controller.spec.ts 

코드 테스트를 위해 사용됩니다.

app.controller.ts

단일 경로로 되어있는 기본 Controller sample 입니다.

app.module.ts

AppModule 응용 프로그램의 root 모듈을 정의합니다.

app.service.ts

기능들에 대해 관심사를 분리합니다. 사용 시 controller에 주입시켜 사용합니다.

main.ts

NestFactory instance를 만드는데 사용됩니다.


최초 실행 시 main.ts가 실행되며, 비동기 함수가 포함되어 있어 응용 프로그램을 bootstrap 합니다.


import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();


Nest 응용 프로그램 인스턴스를 만들기 위해 NestFactory가 사용되는데 NestFactory는 가장 기본적인 Class이며 어플리케이션 instance를 생성 할 수 있는 몇 가지 정적 메소드들을 제공해 줍니다. 


create() 를 통해 AppModule을 생성하고 생성한 것을 app 이라는 변수에 담에 3000번 포트로 bootstrap을 한다.

기본 프로젝트를 설치하면 이 모든 것이 구현되어 있기 때문에 http 서버를 시작할 수 있습니다.


아래 명령어를 실행하여 서버를 로컬에서 띄어봅시다.

$ npm run start

현재 3000번 포트로 설정이 되어있기 때문에 브라우저를 띄운 뒤 http://localhost:3000 을 주소창에 치면 "Hello World!" 라는 문자열을 볼 수 있다.

만약 자신이 쓰는 포트 중 중복되는 포트가 있다면 app.listen()의 매개변수를 수정하여 자유롭게 사용할 수 있다.


다음 시간에는 Controller에 대해 알아보자 !


감사합니다.

오늘도 해피코딩 하세요 !


'프레임워크 및 라이브러리 공부 > NestJS' 카테고리의 다른 글

NestJS 시작하기  (0) 2019.03.02
댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
최근에 올라온 글
Total
Today
Yesterday