[Nest.js] Nest.js란?

Jaehyeong Kwon·2022년 4월 14일
0

NestJS

목록 보기
1/1
post-thumbnail

💻Intro

Node.js 의 프레임워크로 알고 있었다. 개발 공부를 하며 express에 대해서도 어느 정도 본 적이 있었는데 사람들이 구현해놓은 서버를 보면 아키텍쳐가 사람마다 다른 것을 볼 수 있다. 하지만 nest.js는 아키텍쳐를 제공해주는 프레임워크로써 django와 같은 느낌을 받았고, 배워보고자 한다.


Nest.js

Nest.js란?

Nest.js는 효율적이고 안정적이며 확장에 용이한 서버 어플리케이션을 구축하기 위한 진보된 Node.js 프레임워크 입니다.

  • Express 와 같은 서버 프레임워크로 Express 가 서버를 쉽게 만들 수 있지만 아키텍쳐 측면에서 지원하는 것은 없기에 이러한 문제를 해결하고자 Nest.js가 등장하였습니다.

  • NestJS는 Typescript 기반의 OOP(Object Oriented Programming), FP(Functional Programming), FRP (Functional Reactivae Programming)을 지원합니다.


기본 구조

기본 골격은 위의 사진과 같다. App 모듈이 메인으로 실행되고 각 기능들이 Module로 존재하여 App Module에서 사용된다.


Controller

일반적인 Backend 에서 사용하는 Controller 개념과 같은 의미로 생각하면 된다.
요청이 들어오는 입구 역할을 담당한다. 비즈니스 로직을 따로 분리하기 위한 분기점이다.


Provider

providerNestJS의 모든 데이터 처리 및 비즈니스 로직을 담당한다.

역할에 따라 이름이 달라진다.

  • 사용자 인증 : Guards
  • 아웃바운드 데이터 필터링 : Pipes
  • 비즈니스 로직 : Service or Handler
  • 예외 처리 : Exception Filters
  • 미들웨어 : Express 의 미들웨어와 동일

Module

ModuleProviderController를 합치는 역할을 한다.

NestJs는 클라이언트의 요청별로 Controller 와 Provider를 제작하고 이를 Module로 엮어 하나의 단위를 생성한다.


Nest.js 장점

  • 안정성
    기본적으로 TypeScript을 도입함으로서 어플리케이션 개발 시 발생할 수 있는 오류들을 사전에 방지할 수 있다. 또한 모듈 별로 테스크 코드를 쉽게 작성할 수 있게 구현되어 있다.

  • 확장성
    Module을 통해 확장이 용이하도록 설계되어 있다. module을 통해 논리적으로 구분되어 있다. 기본적으로 MSA 개발 스타일을 제공한다.

  • 효율성
    Module을 통한 구조화, DI(dependency Injection), IoC(Inversion of Control) 등의 기술을 통해 생산적인 개발이 가능하다.

profile
나무와 같이 성장하는 사람

0개의 댓글