소개
NestJS는 node.js의 서버사이드 애플리케이션 구축을 위한 프레임워크다.
progressive Js를 사용하며 TypeScript를 완벽하게 지원한다. 물론 pure js도 지원하며 oop, fp, frp의 요소를 결합한다.
NestJs는 내부적으로 Express(기본값)와 같은 HTTP 서버 프레임워크를 사용하며 선택적으로 Fastify도 사용할 수 있다.
Nest는 일반적인 Node.js 프레임워크(Express/Fastify)보다 높은 수준의 추상화를 제공하며, API를 개발자에게 직접 노출한다.
철학
노드(및 서버 측 JavaScript)를 위한 뛰어난 라이브러리, 도우미 및 도구가 많이 존재하지만 그중 어느 것도 아키텍처의 주요 문제를 효과적으로 해결하지 못한다. NestJs는 이를 해결한다.
Nest는 개발자와 팀이 highly testable하고 확장 가능하며 느슨하게 결합되고 유지 관리가 쉬운 애플리케이션을 만들 수 있도록 하는 애플리케이션 아키텍처를 즉시 제공한다. 아키텍처는 Angular에 영감을 받았다.
장점
Nest.js를 사용하면 RESTful API, GraphQL 애플리케이션, MVC 애플리케이션, 웹 소켓, CLI 및 Cron 작업에 이르기까지 다양한 백엔드 서비스를 쉽게 구축할 수 있다. 표준 아키텍처 중 일부는 이미 Nest.js 프레임워크에 내장되어 있다.
Nest.js는 아키텍처가 이미 처리되어 있고 비즈니스 로직을 구축하기만 하면 되는 대규모 마이크로 서비스 애플리케이션을 구축하기 위해 만들어졌다.
Nest.js는 TypeORM, Mongoose 및 GraphQL과 같은 개념에서 로깅, 유효성 검사, 캐싱, WebSocket 등에 이르기까지 원하는 특정 기능을 구축할 수 있는 대규모 커뮤니티 기반의 중첩 지원 모듈을 지원하고 제공한다.
express와 NestJS의 차이점
ExpressJs는 프로젝트 구조에 대한 방향을 제시하지 않는다. 만약 숙련된 개발자가 아니라면 프로젝트가 커질 때 생기는 구조와 스케일 문제를 해결하기가 어렵다.
NestJs는 아키텍처 구조를 제공한다. 내부적으로 ExpressJs를 사용하며 ExpressJs를 추상화하여 제공한다. 테스트하기 쉽고, 스케일업 하기 쉽고 유지 가능한 코드를 작성하기 쉽다. 기본적으로 typescript를 지원한다.
요약
- node.js backend다
- typescript와 잘 맞는다.
- 아키텍처 구조를 제공한다.
- 내부적으로 express js를 사용한다.
- scalable & maintainable하다.
- Angular를 써봤다면 익숙할 것이다. (Angular에 영향을 받음)
https://kinsta.com/knowledgebase/nestjs/
'NestJs' 카테고리의 다른 글
service에서의 repository 의존 역전하기 - 클린 아키텍처 적용하기 (0) | 2023.03.28 |
---|---|
Entity -> DTO 변환 (0) | 2023.03.23 |
NestJS - @Module(), @Injectable(), @InjectRepository() (0) | 2023.03.17 |
NestJS - passport (0) | 2023.03.13 |
NestJs - Guard (0) | 2023.03.09 |