Nest는 효율적이고 확장 가능한 Node.js의 서버 사이드 애플리케이션을 구축하기 위한 프레임워크이다. 진보적인(progressive?) 자바스크립트를 사용하고 TypeScript로 build되며 완벽한 호환을 지원한다. 순수 자바스크립트를 이용해서 개발을 진행할 수 도 있다.(Babel를 이용하여 VanillaJS를 Convert하기 때문에 가능한 부분이라고 생각이 든다.) 그리고 OOP(객체지향), FP(함수형), FRP(함수형 반응형)프로그래밍을 지원한다.
지난 몇 년동안 JavaScript는 엄청난 발전을 이루었고, 그로 인해 프로젝트가 탄생했고, 프론트와 백엔드 구분 없이 자바스크립트 기반의 프로젝트(프레임워크)를 빼고 말할 수가 없었다.
하지만 백엔드 부분의 아키텍처에 대한 부분이 많이 부족하여 대형 프로젝트를 진행하기에는 어려움이 있었고, 이러한 어려움을 해소시켜준 것이 NestJS이다. 확장성이 편리하며, 느슨한 결합과 쉬운 유지보수를 할 수 있는 애플리케이션 아키텍처를 제공하게 됐다.
npm install -g @nest/cli
nest new [project_name]
Controllers
Providers
The @Injectable()
decorator specifies that Angular can use this class in the DI system.