320x100
320x100

NestJS

효율적이고 확장 가능한 NodeJS 기반 서버사이드 애플리케이션 구축을 위한 프레임워크

 

NodeJS 기반으로 Javascript v8 엔진에서 구동되는 웹 앱 프레임워크로 express나 fastify 같은 다른 nodeJS 프레임워크를 래핑하여 동작한다

 

Angular의 영향을 많이 받았으며 Module / Component 기반으로 프로그램을 작성하기 때문에 재사용성이 높고, 

 

함수형 프로그래밍을 지향하며 기본 언어로 타입스크립트를 지원하고 있어, 효율적이고 유연한 웹 애플리케이션을 만들 수 있다

 

 

 

 

장점

최신 ECMA script 지원

CORS (Cross-Origin Resource Sharing), HTTP 헤더 지원

인터셉터, 미들웨어, 로깅, 테스팅, 스웨거 등을 자체적으로 지원

ORM (Object Relation Model) 지원으로 DB와 연동 가능

스케줄링, 이벤트 핸들링, 마이크로 서비스와 같은 고급 기능도 지원

MVC, DDD 등 여러 디자인 아키텍처에 맞는 유연한 개발 가능

공식 문서가 친절함

 

 

 

단점

과도한 유연함으로 SW의 품질의 일관성을 해칠 수 있음

개발에 맞는 라이브러리를 찾는데 오래 걸릴 수 있다

express 보다 무겁고 커뮤니티가 적다

 

 

 

설치

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea

docs.nestjs.com

 

 

 

 

 

프로젝트 구조 (NestJS 초기화 이후 자동으로 생성됨)

src
|__app.controller.spec.ts    // 컨트롤러에 대한 테스트

|__app.controller.ts            // 기본 컨트롤러

|__app.module.ts               // 루트 모듈

|__app.service.ts               // 기본 서비스

|__main.ts                         // Nest 인스턴스 생성 파일. 부트스트랩이 위치

 

 

 

 

 

 

NestJS의 구조

Controller

클라이언트 사이드로 들어오는 요청을 Provider로 위임

 

Provider

비즈니스 로직 

 

DTO (Data Transfer Object)

프로세스 간 전달하는 데이터 (https://2mukee.tistory.com/891)

 

Module

컨트롤러, 서비스, DTO 등을 하나로 묶은 개념

- providers (NestJS Injector에 의해 모듈 내에 공유 될 provider 목록)

- controllers (컨트롤러 목록)

- imports (이 모듈에 필요한 provider가 사용할 외부 모듈 목록)

- exports (이 모듈에서 제공하고 이 모듈을 import하는 다른 모듈에서 사용할 수 있는 provider 목록)

 

 

 

 

 

 

 

 

Reference

 

NestJS 파헤치기1 - 기본 개념 및 설치

NestJS는 뭐야? 라고 물으면 NestJS는 효율적이고 확장가능한 Node.js 기반 서버사이드 애플리케이션 구축을 위한 프레임워크 정도로 설명할 수 있을 것 같다. Node.js 기반으로 javascript v8 engine에서 구

velog.io

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea

docs.nestjs.com

 

NestJS 파헤치기2 - Controller

Overview: App Architecture NestJS 앱을 생성하면 기본적으로 app.controller.ts, app.module.ts, app.service.ts 등으로 보일러플레이트가 구성되어 있고 이를 기본으로 애플리케이션이 구동된다. 지난 포스트 말미

velog.io

 

NestJS 파헤치기4 - Modules

Overview: App Architecture NestJS 앱을 생성하면 기본적으로 app.controller.ts, app.module.ts, app.service.ts 등으로 보일러플레이트가 구성되어 있고 이를 기본으로 애플리케이션이 구동된다. NestJS 파헤

velog.io

 

 

300x250
728x90