Nest.js 1

Crmal·2022년 5월 16일
0

Nest.js

목록 보기
1/3

Nest.js란?

소개(공식 문서)

Nest(NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.
프로그레시브 JavaScript를 사용하고 TypeScript 로 구축되고 완벽하게 지원하며
(그러나 여전히 개발자가 순수 JavaScript로 코딩할 수 있음)
OOP(객체 지향 프로그래밍), FP(기능 프로그래밍) 및 FRP(기능 반응 프로그래밍)의 요소를 결합합니다.

익스프레스에서 디자인적인 측면을 좀더 보완하며 TS설정을 기본적으로 해준다 정도의 특징으로 알고 넘어가면 될것같습니다.


이미지 출처
기본적으로 service와 Controller를 module로 합치고,
모듈들을 app.module에 합쳐서 사용하는 것입니다

Controller

BackEnd에서 흔히 사용하는 Controller 개념 그대로 생각하면 된다.

처음 요청이 들어오는 입구 역할을 담당하며, 비즈니스 로직을 따로 분리하기 위해 진입점을 따로 분리해둔 것이다.

쉽게 설명하자면 식당에 들어갔을 때 좌석을 안내해주는 직원을 생각하면 된다.

HTTP Request에 따라 어떠한 비즈니스 로직을 적용시킬지에 대한 설정을 하면 된다.

Provider(services)

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

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

  • 사용자 인증: Guards
  • 클라이언트가 보내는 데이터 필터링: Pipes
  • 비즈니스 로직: Service or Handler
  • 예외처리: Exception Filters
  • Porvider 처리 과정 중 위에 해당하지 않는 무언가를 하고 싶을 때: Interceptor
  • 미들웨어: Express의 Middleware와 동일
  • Module
  • Module은 Provider와 Controller를 합치는 역할을 한다.

뿐만 아니라 다른 Module이 Provider를 사용할 수 있게 export 처리를 하거나

필요한 Provider가 있는 모듈을 Import해서 사용할 수 있게 만들어준다.

NestJS는 클라이언트의 요청별로 Controller와 Provider를 제작하고 이를 Module로 엮어 하나의 단위를 만든다고 할 수 있다.

⭐Nest.js 장점⭐

  • 효율성 : nestjs는 typescript의 적극적인 도입, DI(Dependency Injection), IoC(Inversion of Control), Module을 통한 구조화 등의 기술을 통해 생산적인 개발이 용이하다.
  • 안정적 : Nestjs는 typescript를 적극적으로 도입함으로서 서버 어플리케이션 개발 시 발생할 수 있는 오류들을 사전에 방지할 수 있도록 하였다. 또한 모듈로 감싸는 형태로 개발하기 때문에 모듈 별로 테스트 코드를 쉽게 작성할 수 있도록 구현되어 있다.
  • 확장성 : Nestjs는 module을 통해 확장이 용이하도록 설계되어 있다. 실제로 사용해보면 module을 통해 코드적으로, 논리적으로 구분한다는 장점을 크게 느끼실 수 있다. 또한 nestjs는 기본적으로 마이크로서비스 아키텍처 개발 스타일을 제공한다.

출처
Nest.js 란 무엇인가

0개의 댓글