드디어 NestJS 정리의 마지막이다
지정한 날짜 혹은 일정 간격으로 특정 함수가 실행되도록 하는 기능
npm install --save @nestjs/schedule
npm install --save-dev @types/cron
//app.module.ts
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
@Module({
imports: [
ScheduleModule.forRoot()
],
})
export class AppModule {}
import { Injectable, Logger } from '@nestjs/common';
import { Cron } from '@nestjs/schedule';
@Injectable()
export class TasksService {
private readonly logger = new Logger(TasksService.name);
@Cron('45 * * * * *')
handleCron() {
this.logger.debug('Called when the current second is 45');
}
}
'second minute day(of month) month day(of week)'
을 따른다.@Interval(10000)
handleInterval() {
this.logger.debug('Called every 10 seconds');
}
@Timeout(5000)
handleTimeout() {
this.logger.debug('Called once after 5 seconds');
}
솔직히 백알못(?)인 내가 NestJS의 수많은 기능들을 다 돌아볼 수 있었다는 데 굉장히 큰 보람을 느낀다. 물론 정리한 기능들이 완벽히 숙지되지는 않았지만, 이렇게 정리를 하나하나 해나가면서 공부의 깊이가 깊어졌다고 생각한다. 무엇보다 멀게만 느껴졌던 백엔드가 이제는 굉장히 덜 무서워졌다.
NestJS의 구조는 Spring과 거의 비슷한 것으로 보인다. 백엔드 프레임워크 중 가장 대중적으로 사용되는 Spring과 NestJS의 구조가 비슷하다는 것은 가장 효율적인 백엔드 설계 구조가 이미 어느정도 합의되어 있는 것이 아닌가 한다. 어쨌든 이런 과정을 통해 구조를 보는 시야가 확장된 것이 이번 공부의 가장 큰 수확이라고 생각한다.
끝!