728x90
반응형
Nest?
Nest.js는 TypeScript로 작성된 프레임워크로, Node.js를 기반으로한 서버 사이드 애플리케이션을 구축하기 위한 도구입니다.
Angular와 비슷한 구조와 기능을 제공하여 Angular 사용자들에게 친숙하고 익숙한 느낌을 주는 특징을 가지고 있습니다.
Nest.js의 주요 특징
Nest.js 애플리케이션의 기능을 나타내는 단위인 모듈은 각 모듈은 @Module() 데코레이터를 사용하여 정의되며, 해당 모듈에는 HTTP 요청을 처리하고 해당 요청에 따른 응답을 반환하는 역할을 담당하는 Controller, 애플리케이션의 비즈니스 로직을 담당하는 Service, 의존성 주입(Dependency Injection)을 위해 사용되는 객체인 Provider등의 다양한 모듈러 구조를 가지고 있습니다.
각 모듈과 관련된 자세한 내용은 다른 포스팅에서 다루도록 하겠습니다.
Nest.js는 CLI(Command Line Interface) 도구를 제공하여 새로운 프로젝트 생성, 모듈 생성, 컨트롤러 생성 등을 할 수 있습니다. (아래는 예시 명령어들 입니다.)
// 새로운 프로젝트 생성
nest new project-name
// 새로운 모듈 생성
nest generate module module-name
// 새로운 컨트롤러 생성
nest generate controller controller-name
// 새로운 서비스 생성
nest generate service service-name
Nest의 장점
- TypeScript로 작성되어 있기 때문에 컴파일 타임에서 타입 안정성을 제공한다는 점이 있습니다. 그로 인해 Swagger와의 연계되어 API 문서를 자동으로 생성하는 데 도움을 주고 있습니다.
- Spring 프레임워크와 같이 어떤 규칙을 제공하는 데 이로 인해 개발자들이 아키텍처 구성에 고민해야 하는 부분이 많이 줄어들게 되었죠.
- Nest.js에서는 의존성 주입(Dependency Injection)을 통해 서비스(Service), 컨트롤러(Controller), 프로바이더(Provider)등의 클래스 인스턴스를 관리하고 주입하는데, 이를 통해 단일 인스턴스에 대한 보장을 제공하여 애플리케이션의 성능을 향상시키고메모리 사용을 최적화하여 효율적인 동작을 보장하고 있습니다.
- class-validator 등을 이용해서 Request의 body, query 등의 타입을 검사하는 것도 매우 좋습니다.
Nest의 단점
- Spring이나 Angular 사용자가 아니라면 러닝 커브가 클 수 있습니다. 저의 경우 Spring 잠깐 겉핥기로 공부했다가 Node로 넘어왔기 때문에 처음에 적응하는 데 어려움이 있었습니다.
- Express.js와 비교하여, NestJS는 코드의 추상화 수준이 높기 때문에 러닝 커브가 클 수 있습니다.
728x90
반응형
'프로그래밍(Basic) > NestJS' 카테고리의 다른 글
[바미] NestJS - 데코레이터(Custom decorators) (0) | 2024.03.02 |
---|---|
[바미] NestJS를 사용하여 REST API 구현하기 (0) | 2024.03.01 |
[바미] Nest 모듈(Module) 이해하기 (0) | 2024.02.27 |
Nest - EntityMetadataNotFoundError (0) | 2024.01.12 |
Nest - Swagger에서 변수 optional하게 처리해야 할 때 (0) | 2024.01.03 |