본문 바로가기
backend/NestJS

[NestJS] NestJS란?

by BK0625 2023. 1. 16.
반응형

NestJS

요즘 Node 진영에서 핫한 프레임워크인 NestJS에 대해 간략히 알아보겠다.

 

NestJS는 Node.js에 기반을 둔 웹 API 프레임 워크로 IoC, DI, AOP와 같은 객체 지향 개념을 도입하였다.

 

자바 진영의 스프링과 비슷한 위치로 스프링과 많은 유사성을 지닌다.

 

대표적으로 스프링의 어노테이션 같이 데코레이터를 사용하여 관점 지향 프로그래밍을 적용한 코드를 작성 가능하다.

 

Express와의 비교

그 동안 노드 진영의 서버 프레임워크로는 express가 많이 사용되었다.

 

express는 배우기 쉽고 빠르게 서버를 띄울 수 있으며 구조를 짜기에 매우 자유롭다.

 

하지만 너무 자유로운 나머지 사람들마다 모두 구조가 다르고 협업을 하거나 유지 보수하기에 어려움을 겪는 문제가 있었다.

 

NestJS는 비교적 정형화된 구조로 안정적이고 협업하기 편한 장점이 있고

 

구조가 스프링과 비슷하기 때문에 수평 이동도 훨씬 수월하다.

 

NestJS의 장점

1.개발자가 편리하게 개발하고 설정할 수 있도록 강력한 CLI(명령 줄 인터페이스) 도구 제공

nest 명령어를 치면 다양한 CLI 도구들을 볼 수 있다.

 

2. API 문서화를 위한 Swagger 기능

따로 API 문서를 만들 필요가 없을 수도?

이렇게 되면 번거로운 문서 작업 없이 클라이언트 개발자와 수월하게 협업할 수 있다.

 

 

3. 테스트 코드를 위한 파일들이 자동 생성되어 테스트 코드 작성이 쉬움

spec 달려있는 파일들이 테스트 코드를 위한 파일들이다.

 

4. 타입스크립트를 사용하여 클라이언트 개발을 타입스크립트를 사용하여 개발 할 시 한 가지 언어로 클라이언트와 서버를 개발 가능하며 타입스크립트의 장점을 그대로 가져갈 수 있다(물론 설정에 따라 자바스크립트도 사용 가능하다.)

 

 

5. 모듈/ 컴포넌트 기반으로 프로그램을 작성해 코드 재사용성이 높음

모듈관리하는 코드

이렇게 모듈로서 관리 되기 때문에 여러 컴포넌트를 하나의 기능으로 묶어 관리할 수 있고 다른 폴더에서 이를 재사용하고 싶으면 해당 module 파일을 다른 모듈에서 종속적으로 주입할 수 있어 코드를 쉽게 재사용할 수 있다.

 

 

현재 NestJS를 사용하여 프로젝트를 진행 중에 있는데 그 동안 느낀 점은 적어도 스프링 레거시보다는 훨씬 편리하다(부트는 아직...) 앞으로 프로젝트를 하면서 알게 된 내용을 포스팅 할 예정이다

반응형