NestJS를 사용한 서버 개발을 하는 회사가 점점 늘어나면서 Spring과 NestJS의 차이점에 대해서 궁금해하실 분들이 계실 것 같습니다. 오늘은 NestJS로 커리어를 시작해서 현재는 Kotlin & Spring 프로젝트까지 개발 중인 저의 주관적인 의견을 소개해 드리려고 합니다.

NestJS는 Angular 프레임워크의 영향을 받아서 Module-Controller-Service 아키텍처 패턴을 따릅니다. Root Module 내부에서 거의 위의 그림처럼 정형화된 구조의 각 모듈로 구성되게 됩니다. 이는 비교적 자유롭게 아키텍쳐를 구성할 수 있는 Spring에 비해서 엄격하다고 느낄 수 있습니다. 이런 강제성이 마음에 안 드는 사람도 있을 것 입니다. 하지만 NestJS의 탄생 배경 자체가 NodeJS 진영에 체계화된 아키텍쳐를 제공하기 위함이기 때문에 엄격한 그 맛에 사용한다고 볼 수 있습니다.
그러한 이유로 NestJS는 모듈을 생성 시 커맨드 명령어를 제공합니다. 만약 Spring을 먼저 접한 개발자라면 NestJS 실습 중 Nest CLI 가 신선하게 느껴질 수 있습니다. 제가 위의 users 모듈을 생성할 때 마우스는 일절 사용하지 않고 아래의 코드를 이용해서 생성했습니다.
nest g module users
nest g controller users --no-spec
nest g service users --no-spec
블로그를 이전했습니다. 다음 링크에서 이어서 보실 수 있어요😊
https://neungs-2.github.io/framework/spring-nestjs/