내배캠 88일차

·2023년 2월 9일
0

내일배움캠프

목록 보기
96/142
post-thumbnail

NestJS

NestJS가 주목받는 이유

Express의 아쉬운 점

  1. 사용하고 싶은 미들웨어들이 많으면 많을수록 개발자들은 미들웨어를 계속 사용한다고 선언해야 하며 사용해야 하는 미들웨어들에 대한 사전 공부를 하지 않을 수 없음.

  2. 하나하나 조립하기 좋아하는 개발자들이면 크게 불편함을 느끼지는 않겠지만 Spring Boot와 같이 다른 환경에서 잘 준비된 웹 프레임워크를 사용하다가 Express를 사용하면 분명히 귀찮음을 느낄 것.

  3. Express로 레이어드 아키텍처 패턴을 나타내기 위해서는 디렉토리 구조를 명확하게 설계해야 하며 서비스 요구사항 변경 및 기획이 추가됨에 따라서 필요한 개념들을 새롭게 추가하여야 합니다.

  4. Express도 워낙에 알려진 지 오래다 보니 express-generator와 같은 CLI 툴도 제공하고 많은 개발자가 자체적으로 boilerplate를 만들어서 오픈소스로 공개하기도 함. 하지만, 이러한 boilerplate도 공식적으로 인정되는 것은 아니며 필요한 개발자들이 입맛에 맞게 사용할 수 있어야 함.

NestJS등장

NestJS는 타입스크립트 & 커맨드 기반 웹 프레임워크!!

NestJS는 타입스크립트 기반의 웹 프레임워크이기 때문에 자바스크립트에 비해서 보다 엄격한 타입 체크를 함으로써 여러 예외 상황을 사전에 방지할 수 있음.

레이어드 아키텍처 패턴을 구성할 때 NestJS는 커맨드 하나로 간편하게 대부분의 구성요소를 구현할 수 있습니다. 예를 들면, Posts 컨트롤러를 만들려고 하면 다음과 같은 커맨드를 사용하면 됩니다.
(g는 generate의 약어이며 co는 controller의 약어)

nest g co posts

컨트롤러뿐 아니라 서비스, 미들웨어와 인터셉터 등 웹 서버에 필요한 다양한 구성요소를 커맨드로 정확하게 구현할 수 있다는 것은 NestJS만의 엄청난 장점!! 왜냐하면 개발자가 실수하고 싶어도 NestJS가 기계적으로 구성한 바탕 위에서 실수하기가 힘들기 때문. 프로젝트 디렉토리 구조도 알아서 자동으로 잡힌다.

이런 게 지원이 되면 좋은 것이 또 하나가 있습니다. 바로, 개발자가 비지니스 로직. 즉, 웹 서버의 핵심 로직 구현에만 신경쓰고 그 외에 다른 부분들은 NestJS에 일임을 하면 되는 것입니다.

따라서 비지니스 로직의 퀄리티가 향상될 가능성이 커지고, 코드 생산성이 향상된다는게 NestJS의 장점!!

profile
개발자 꿈나무

0개의 댓글