[NestJS-study] NestJS 란?

JooSehyun·2024년 8월 5일
0

[Study]

목록 보기
37/56
post-thumbnail

[NestJS-study] NestJS 란?


🌐 Nest JS 공식 문서

원래는 JAVA를 공부해보고 싶었지만 그래도 익숙한 JavaScript와 현재 프로젝트에서 배운 TypeScript와 같이 사용하기 좋은 NestJS를 먼저 배워보는게 나을거 같아 강의를 듣고 공부를 시작하게 되었다.


Nest JS 란?

NestJS 는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임 워크 입니다. 프로그레시브 JavaScript를 사용하고 TypeScript로 빌드 되고 완벽하게 지원하며 OOP(Object Oriented Programming) , FP (Functional Programming)FRP (Frunctional Reactive Programming) 요소를 사용할 수 있게 해줍니다.

Nest JS는 내부적으로 어떻게 구성되어있나요?

내부적으로 NestExpress(기본값)와 같은 강력한 HTTP 서버 프레임워크를 사용하며 선택적으로 Fastify 사용하도록 구성할 수도 있습니다. Nest는 이러한 공통 Node.js 프레임워크 (Express / Fastify) 위에 추상화 수준을 제공하지만 API를 개발자에게 직접 노출합니다. 이를 통해 개발자는 기본 플랫폼에서 사용할 수 있는 수많은 타사 모듈을 자유롭게 사용할 수 있습니다.


🕵️ Fastify 란?

Fastify란 Node.js 환경에서 사용되는 빠르고 저렴한 HTTP 서버 프레임워크입니다. Express와 유사한 기능을 제공하면서도 더 높은 성능을 목표로 하고 있으며, 특히 비동기 작업에서 빠른 응답 속도를 자랑합니다.

주요 특징

  • 고성능: Fastify는 내부적으로 비동기적이고 비블로킹 방식으로 작동하여 빠른 요청 처리 속도를 제공합니다.
  • 경량성: 필요한 기능만을 포함하여 경량으로 설계되었습니다.
  • 확장성: 플러그인 시스템을 통해 쉽게 기능을 확장할 수 있습니다.
  • JSON Schema를 사용한 자동 검증: Fastify는 JSON Schema를 사용해 요청 및 응답의 유효성을 검증할 수 있습니다.

NestJS는 기본적으로 Express를 사용하지만, Fastify를 사용하도록 구성할 수도 있어 개발자가 필요에 따라 더 높은 성능을 추구할 수 있는 옵션을 제공합니다.


Nest JS의 철학

Node (및 서버측 JavaScript)를 위한 훌륭한 라이브러리, 도우미 및 도구가 많이 존재하지만 이들 중 어느 것도 아키텍처의 주요 문제를 효과적으로 해결하지 못합니다.

Nest는 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고 유지 관리가 쉬운 애플리케이션을 만들 수 있는 즉시 사용 가능한 애플리케이션 아키텍처를 제공합니다. 이 아키텍처는 Angular에서 크게 영감을 받았습니다.


출처: JhonAhn님의 유튜브 강의 NestJS를 참고하여 작성하였습니다.

0개의 댓글