- NestJS는 Node.js에 기반을 둔 웹 API 프레임워크
- Express 또는 Fastify 프레임워크를 래핑 하여 동작.
- 기본으로 설치하면 Express를 사용
- req나 res 같은 Express 객체를 직접적으로 사용하는 게 좋은 방법은 아니다.
- 왜냐면 NestJS는 두 개의 프레임워크랑 작동한다.
- 기본적으로 Express 위에서 실행 이걸 Fastify로 전환시킬 수 있다.
- 즉, Nest는 Express 프레임워크를 사용하도록 만들 수 있고 Fastify 같은 다른 라이브러리와 호환이 된다. (Fastify는 Express보다 2배 정도 빠름)
- NestJS가 이 두 개 프레임워크 위에서 동시에 돌아간다.
- 그래서 Express에서 req, res 객체를 많이 사용하지 않는 게 중요하다.
- NestJS방식만 사용한다면 Express, Fastify로 바로 전환할 수 있다.
- Node.js는 손쉽게 사용할 수 있고 뛰어난 확장성을 가지고 있지만, 과도한 유연함으로 인해 SW의 품질이 일정하지 않고 알맞은 라이브러리를 찾기 위해 사용자가 많은 시간을 할애해야 한다.
- 이에 반해 NestJS는 데이터베이스, ORM, 설정(Configuration), 유효성 검사 등 수많은 기능을 기본 제공하고 있다.
- 그러면서도 필요한 라이브러리를 쉽게 설치하여 기능을 확장할 수 있는 Node.js 장점은 그대로 가지고 있다.
- NestJS는 Angular로부터 영향을 많이 받음.
- 모듈/컴포넌트 기반으로 프로그램을 작성함으로써 재사용성을 높여준다.
- IoC(Inversion of Control, 제어역전),
- DI(Dependency Injection, 의존성 주입),
- AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)와 같은 객체지향 개념을 도입
- 프로그래밍 언어는 타입스크립트를 기본으로 채택하고 있다. 타입스크립트가 가진 타입시스템의 장점을 누릴 수 있다.
- NestJS는 국내에서도 점점 인기를 얻고 있고 모두싸인과 당근마켓 등 여러 회사에서 적용되어 사용자가 늘고 있다.
- 백엔드 개발을 처음 접하는 사람도 쉽게 따라하면서 백엔드에 필요한 기술들을 습득할 수 있다.
NestJS는 Node.js를 기반으로 한 최신 웹 프레임워크이다. 이 프레임워크는 TypeScript를 기본 언어로 사용하며, Angular에서 영감을 받은 모듈화된 구조를 가지고 있다.
이를 통해 강력하고 확장 가능한 서버사이드 애플리케이션을 작성할 수 있다.
NestJS의 주요 특징
1. 모듈화
NestJS는 애플리케이션을 모듈로 분리하여 관리하며, 이를 통해 코드를 보다 쉽게 유지보수하고 확장할 수 있다.
2. 의존성 주입
NestJS는 Angular의 의존성 주입 패턴을 차용하여, 효율적으로 의존성을 관리하고 테스트할 수 있다.
3. 데코레이터
TypeScript의 데코레이터를 활용하여 코드의 가독성과 구조를 향상시킨다. 이를 통해 라우팅, 미들웨어, 가드 등 다양한 기능을 쉽게 구현할 수 있다.
4. 다양한 프로토콜 지원
HTTP뿐만 아니라 WebSockets, gRPC, GraphQL 등 다양한 프로토콜을 지원한다.
NestJS는 특히 대규모 애플리케이션이나 복잡한 백엔드 시스템을 구축하는 데 적합하며, 빠르게 성장하는 커뮤니티와 풍부한 문서를 제공하고 있다.
출처 : wikidocs
'Frontend > Nest.js' 카테고리의 다른 글
NestJS : 형변환 (0) | 2023.01.09 |
---|---|
NestJS : 라우터 및 데코레이터 설명 (0) | 2023.01.09 |
NestJS : 아키텍처 (0) | 2023.01.09 |
Nuxt, Next, Nest 차이점 (0) | 2022.12.30 |
Express가 좋을까 NestJS가 좋을까? (0) | 2022.12.30 |