Tech Blog of Pinomaker
article thumbnail
Published 2023. 10. 11. 21:20
Nestjs V10의 변화점 B.E/Nest JS

올해 NestJS에서 V10을 발표했다. 나는 좀 뒤늦게 알게 되었지만 처음 공부할 때가 V8에서 V9 막 넘어갈 때였는 데, 확실하게 업데이트가 빠른 프레임워크인 것 같다.

 

NestJS V10에서 발표한 가장 큰 내용은 SWC, Redis 와드카드 구독 CacheModule 분리, node 12 이하에서 지원 중지 등이 있다.

 

오늘은 간단하게 NestJS V10에 대한 특징을 간단하게 정리하고자한다.

 

1. SWC

SWC, Speedy Web Compiler는 컴파일과 번들링 모두에 사용할 수 있는 확장 가능한 Rust 기반의 플랫폼이다. 기존의 Babel의 대체재라고 생각하면 이해하기 편하다.

 

Nest Cli와 SWC를 같이 사용하게 되면 개발 프로세스 속도를 간단하게 대폭 상승 시킬 수 있다. SWC는 Typescript 컴파일러에 비하여 20배 정도 빠른 속도를 자랑하기 때문이다.

 

 

2. Redis

V10에서는 Redis 와일드카드 구독에 대한 지원을 추가하였다. 해당 기능을 사용하면 특정 패턴과 일치하는 모든 메세지를 구독할 수 있다고 한다.

import { NestFactory } from '@nestjs/core';
import { Transport, MicroserviceOptions } from '@nestjs/microservices';

import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.createMicroservice<MicroserviceOptions>(
    AppModule,
    {
      transport: Transport.REDIS,
      options: {
        host: 'localhost',
        port: 6379,
        wildcards: true, // ** 해당 옵션
      },
    },
  );
  await app.listen();
}
bootstrap();

 

Redis는 psubscribe와 pmessage를 사용하다고 하는 데, 여기서 와일드카드를 활성하면 구독에서 glob-style patterns을 구현할 수 있다고 한다.

 

쉽게 말해서 h?llo는 hello, hallo 등을 구독할 수 있다는 말이다.

 

 

3. CacheModule 모듈 분리

기존의 CacheModule은 @nestjs/common 패키지에서 제공되고 있었지만 이제는 분리되어 독립형 패키지인 @nestjs/cache-manager로 사용이 가능하다. 불필요한 종속성을 피하기 위해서 이러한 결정이 있었다고 한다.

 

4. Node.js v12 지원 중단

Node.js v12가 22년 4월에 종료되었기에 nestJS 10부터는 더이상 node v12를 지원하지 않으며 또한 NestJS 16 이상을 사용해야합니다. 이제 NestJS의 공식 패키지들은 기본적으로 ES2021로 컴파일됩니다.

profile

Tech Blog of Pinomaker

@pinomaker

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!