NestJS는 TypeScript를 지원하는 효율적이고 확장 가능한 NodeJS의 서버 애플리케이션 프레임워크라고 하며 OOP(Object Oriented Programming), FP(Functional Programming) 및 FRP(Function Reactive Programming) 요소를 결합하는 특징을 가지고 있다고 한다.
왜 NestJS를 쓰게 된 것일까? Node와 서버측 JS를 위한 훌륭한 모듈과 라이브러리 들이 존재해도 Architecture의 주요 문제들을 해결하지 못했기에 규칙이나 제약 구조와 프레임워크가 필요한 부분이 생기고 유지보수와 비용등에 어려움을 겪는 부분이 생겨나면서 이러한 문제점을 해결하고자 등장하였다고 한다. NestJS는 아키텍처 구조를 제공함으로써 NodeJS의 주요문제를 해결해준다고 한다.
NestJS 폴더 구조는 기본적으로 필요한 것들을 미리 설치하고 구조를 정해서 프로젝트에 적용하게 된다. 그 구조는 대략 다음과 같다.
이처럼 NestJS를 통해 기본적으로 생성된 파일을 이용해 MVC패턴에 맞는 구조를 편하게 쓸 수 있으며 이는 곧 객체 지향적인 설계로 인해 더더욱 확장에 용이하고 효율성 좋은 앱을 만들 수 있게 도와준다고 할 수 있다.