OVERVIEW - First steps

Nari.·2021년 7월 23일
0

NestJS 공식문서

목록 보기
1/4
post-thumbnail

앞으로 2~3달에 걸쳐서 NestJS를 공부해보려한다. 왜냐하면 매시업에서 같이 공부하기로 했기 때문!!!! Nest.js의 공식 문서를 이용해서 공부를 할 계획이다.
아직 Node.js도 마스터 못한것같지만... 새로운 프레임워크를 공부하며 더 많이 경험하고 노드와도 친해지기 위한 노력을 해야겠다.

Introduction

Nest(NestJS)는 효율적이고 확장 가능한 Node.js 서버측 애플리케이션을 구축하기 위한 프레임워크이다.

NestJS 특징

  • 프로그레시브 자바스크립트를 사용하고 TypeScript로 빌드되고 완벽하게 지원(하지만 여전히 개발자가 순수 자바스크립트로 코딩할 수 있음)
  • OOP (객체 지향 프로그래밍 Object Oriented Programming)
  • FP (함수형 프로그래밍 Functional Programming)
  • FRP (함수형 반응형 프로그래밍 Functional Reactive Programming) 요소를 결합
  • 내부적으로 Express(디폴트)와 같은 강력한 HTTP 서버 프레임워크를 사용
  • 선택적으로 Fastify를 사용하도록 구성할 수도 있음


First steps

NestJS는 Node.js와 친해서 TypeScript 및 순수 자바스크립트와 모두 호환되며, 바닐라 자바스크립트와 함께 사용하려면 Babel 컴파일러가 필요하다. 예시에서는 대부분 TypeScript를 사용할 예정.


Prerequisties

# node.js 설치 확인
$ node -v
v14.17.3

Setup

$ npm i -g @nestjs/cli

# 생성할 프로젝트 이름을 넣어서 만들면 디렉토리와 몇가지 예시 파일로 채워짐
$ nest new <project-name>

프로젝트를 만든 곳으로 들어가보면, project-name이라는 폴더와 그 안에 몇가지 파일이 생긴 것을 확인 할 수 있다.

project-name
ㅤㅤ|- src
ㅤㅤㅤㅤ|- app.controller.spec.ts ----컨트롤러를 위한 유닛 테스트
ㅤㅤㅤㅤ|- app.controller.ts ---------하나의 라우트가 있는 기본 컨트롤러
ㅤㅤㅤㅤ|- app.module.ts -------------애플리케이션의 루트 모듈
ㅤㅤㅤㅤ|- app.service.ts ------------단일 메소드를 사용하는 기본 서비스
ㅤㅤㅤㅤ|- main.ts -------------------핵심기능 NestFactory를 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 엔트리 파일

// main.ts

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

// bootstrap 이라는 비동기 함수 포함
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

Nest 애플리케이션 인스턴스를 생성하기 위해 핵심 NestFactory 클래스 사용.
create() 메소드 : INestApplication 인터페이스를 충족하는 애플리케이션 객체 반환함


Platform

Nest는 플랫폼에 구애받지 않는 프레임워크를 목표로하며, 플랫폼 독립성을 통해서 재사용 가능한 논리적 부분을 만들 수 있다.

플랫폼설명
platform-expressExpress는 노드용으로 잘 알려진 미니멀리스트 웹 프레임워크로, 기본적으로 @nestjs/platform-express 패키지가 사용됨.
platform-fastifyFastify는 최대 효율성과 속도를 제공하는데 중점을 둔 고성능 및 낮은 오버헤드 프레임워크
/* 아래와 같이 전달할 경우
 * app 객체는 해당 특정 플랫폼에서만 사용할 수 있는 메서드를 갖게 된다.
 */
const app = await NestFactory.create<NestExpressApplication>(AppModule);

기본 플랫폼 API에 액세스 하려는 경우를 제외하고는 유형을 지정할 필요가 없다.


Running the application

npm run start

위의 명령어는 src/main.ts 파일에 정의된 포트에서 수신대기하는 HTTP 서버로 앱을 시작한다. 애플리케이션이 실행되면 브라우저를 열고 http://localhost:3000/ 으로 접속해보면,

이렇게 뜬다면 잘한것 같다!!!!!!!



참고

https://docs.nestjs.kr

0개의 댓글