Skip to content

NestJS 소개

개인적인 의견

저는 ExpressJs로 처음 NodeJs로 Backend 개발을 시작하였습니다. Express는 자유도가 높은 대신에 불편한 점도 매우 많았습니다. NestJs는 객체지향적인 캡슐화, 의존성 그리고 잘 정돈된 Typescript로 개인의 Backend 개발역량을 더 많이 발전시킬 수 있었습니다. 단, 러닝커브가 있다는 단점이 있는데 제가 공부했던 것을 바탕삼아 이것을 해당내용을 정리해보려고 합니다.

개요

NestJS는 효율적이고 확장 가능한 Node.js 서버 사이드 애플리케이션을 구축하기 위한 프레임워크입니다. NestJS는 프로그레시브 자바스크립트를 사용하며, TypeScript를 완전히 지원하면서도 순수 자바스크립트로 코딩할 수 있는 옵션을 제공합니다. OOP(객체 지향 프로그래밍), FP(함수형 프로그래밍), FRP(함수 반응형 프로그래밍)의 요소를 결합합니다.

기술적 특징

Nest는 기본적으로 Express를 사용하고, 선택적으로 Fastify를 사용하도록 설정할 수 있습니다. 이는 Nest가 Node.js 프레임워크(Express/Fastify) 위에 추상화 계층을 제공함과 동시에, 개발자가 직접 이들 API에 접근할 수 있게 해주어, 기존 플랫폼에 대해 이용 가능한 다양한 서드 파티 모듈을 사용할 수 있게 합니다.

철학

Node.js 덕분에 자바스크립트가 프론트엔드 및 백엔드 애플리케이션 모두에 대한 웹의 "공용어"가 되었습니다. 이로 인해 Angular, React, Vue와 같은 뛰어난 프로젝트들이 생겨나 개발자의 생산성을 향상시키고 빠르고, 테스트 가능하며, 확장 가능한 프론트엔드 애플리케이션을 만들 수 있게 되었습니다. 그러나 서버 사이드 자바스크립트를 위한 뛰어난 라이브러리, 헬퍼, 도구들이 많음에도 불구하고, 이들은 아키텍처라는 주요 문제를 효과적으로 해결하지 못했습니다.

NestJS는 개발자와 팀이 테스트 가능하고, 확장 가능하며, 결합도가 낮고, 유지보수가 쉬운 애플리케이션을 만들 수 있도록 하는 아웃오브더박스(application architecture) 아키텍처를 제공합니다. 이 아키텍처는 Angular에 의해 크게 영감을 받았습니다.