[typescript] Nest.js에서 타입스크립트를 사용한 캐시 관리

Nest.js는 Node.js 서버 측 응용 프로그램을 구축하기 위한 프레임워크로, 효율적이고 확장 가능한 애플리케이션을 개발할 수 있도록 도와줍니다. 이번 글에서는 Nest.js에서 타입스크립트를 사용하여 캐시를 관리하는 방법에 대해 살펴보겠습니다.

Nest.js에서의 캐시 관리

Nest.js에서 캐시를 관리하기 위해 우리는 @nestjs/common 패키지 안에 있는 CacheModule을 사용할 것입니다. 이 모듈을 이용하면 쉽게 캐시를 구성하고 액세스할 수 있습니다.

import { CacheModule, Module } from '@nestjs/common';

@Module({
  imports: [CacheModule.register()],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

위의 코드에서 CacheModule을 가져와 모듈로 등록하고, 이를 애플리케이션 모듈에 가져와 등록하는 것을 볼 수 있습니다. 이렇게 함으로써 해당 애플리케이션 전체에서 캐시를 사용할 수 있게 됩니다.

타입스크립트를 사용한 캐시 서비스 생성

이제 우리는 타입스크립트를 사용하여 캐시 서비스를 만들어 보겠습니다.

import { CacheService } from '@nestjs/common';

@Injectable()
export class AppService {
  constructor(private cacheManager: CacheService) {}

  async getCachedData(key: string): Promise<any> {
    const value = await this.cacheManager.get(key);

    if (value) {
      return value;
    }

    const data = await this.fetchDataFromDB();
    await this.cacheManager.set(key, data);
    return data;
  }

  private async fetchDataFromDB(): Promise<any> {
    // 데이터베이스에서 데이터를 검색하는 로직
  }
}

위의 코드에서 우리는 @nestjs/common 패키지 안에 있는 CacheService를 가져와서 이를 이용하여 캐싱을 수행하는 AppService를 생성했습니다.

마치며

Nest.js와 타입스크립트를 활용하여 캐시를 효율적으로 관리하는 방법에 대해 알아보았습니다. 이를 통해 애플리케이션의 성능을 향상시키고, 데이터베이스나 외부 API에 대한 요청을 줄일 수 있습니다.

이상으로 Nest.js에서 타입스크립트를 사용한 캐시 관리에 대해 알아보았습니다.

참고 자료: