[Nest] 왜 Nest를 쓰는가?

ShinJuYong·2022년 7월 8일
4

Nest

목록 보기
12/13

Nest란?

Nest는 효율적이고 확장가능한 Node.js 진영의 애플리케이션을 구축하기 위한 프레임워크

프레임워크란? : 목적에 따라 효율적으로 구조를 짜놓는 개발 방식

장점

  • TypeScript로 빌드되며, (순수 자바스크립트로도 코딩이 가능하다)
    서버 어플리케이션 개발시 발생할 수 있는 오류들을 사전에 방지할 수 있도록 했다
  • Module을 감싸는 형태로 개발하기 때문에, Module별로 테스트 코드를 쉽게 작성할 수 있도록 구현되어있어, 안정적이다
  • Pipe형태의 Vaildation이 내장돼있어 간편한 검증이 가능하다

Express란?

간결하고 유연한 Node.js기반의 애플리케이션을 구축하기 위한 프레임워크

장점

  • Node.js의 사용율 1위 프레임워크이며, 수많은 레퍼런스가 있다
  • 웹서버를 빠르게 구현이 가능하며, 구조에대한 자유도가 매우높다

Nest.js와 Express의 차이점

Express로만 웹서버를 구축한다 예상해보자

  • A: B 개발자님 이 코드는 언제 호출되나요?
  • B: C 개발자님이 개발하셔서 물어보셔야 할거같아요

이런식으로 A,B개발자 모두 C의 아키텍처디자인 스타일을 설명받고 나서야 C 개발자의 코드가 이해가 된다

하지만 Nest.js는 아키텍처의 정의도 프레임워크에서 제공하기 때문에 개발자가 서로 작성한 코드의 구조를 쉽게 파악할 수 있다.

그래서 왜 Nest.js를 쓰는가?

위에서 설명했듯이, Nest.jsModule이 존재하며 Module이 관련된 기능을 요소로 가져, 싱글톤 방식으로 동일한 인스턴스를 공유 받을 수 있다.

Module안에는 Controller가 있는데 ControllerExpressRoute와 비슷하다, 요청응답을 반환하는 역할을 맡는다.

import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()	
  findAll(): string {
    return 'This action returns all cats';
  }
}

여기서 String형태로 반환값이 있지만, Nest에서는 자동으로 JSON으로 직렬화를 하여 보내준다

그리고 Provider를 이용한 종속성 주입을 통해 Controller에 서비스를 주입한다.

Provider는 서비스,레포지토리,팩토리,헬퍼 등등 여러 Provider들이 존재한다.

마치며

Nest.js를 왜쓰는지에 대해서 다시한번 공부를 해봤다, 아직 IoC, DI등 자세히 개념을 정리를 못했기에 한번더 정리할 예정

0개의 댓글