1. 크론 스케줄러(Cron Scheduler)란?
크론(Cron)은 지정한 시간마다 자동으로 작업을 수행하는 스케줄러입니다.
- 리눅스 환경에서는 crontab -e 명령어를 통해 설정할 수 있고,
- NestJS에서는 @nestjs/schedule 패키지를 통해 Cron 기능을 사용할 수 있습니다.
2. Cron 표현식 구조
| 초 | 0~59 | * (매초) |
| 분 | 0~59 | * (매분) |
| 시 | 0~23 | * (매시간) |
| 일 | 1~31 | * (매일) |
| 월 | 1~12 | * (매월) |
| 요일 | 0~7 (0과 7은 일요일) | * (매일) |
- * → 모든 값 (매시각 / 매일)
- 예: 0 * * * * * → 매 분 0초마다 실행
3. NestJS에서 크론 사용하기 (@nestjs/schedule)
NestJS에서는 스케쥴러 패키지를 설치한 후, 아래와 같은 데코레이터를 사용해 작업을 예약할 수 있습니다.
| @Cron() | CRON 표현식 기반으로 주기적 실행 |
| @Interval(ms) | 일정 간격(ms) 마다 반복 실행 |
| @Timeout(ms) | 일정 시간(ms) 후 딱 1번만 실행 |
4. 설치 방법
(1) 설치 명령어 : npm install @nestjs/schedule
(2) AppModule 설정

5. Logger 사용법 (NestJS 내장 Logger)
NestJS에서는 Logger 클래스를 통해 서버에서 발생하는 로그를 남길 수 있습니다.
| log() | 일반적인 정보 로그 |
| warn() | 경고 메시지 |
| error() | 에러 메시지 |

6. 실사용 예시
(1) 스케줄러 컨트롤러 등록
| 30초마다 account1 잔액 조회 | @Cron(CronExpression.EVERY_30_SECONDS) |
| 10초마다 account1 → account2 1ETH 전송 (10회 반복) | @Cron(CronExpression.EVERY_10_SECONDS) |
(2)서비스에서 트랜잭션 로직 + 로그 기능 사용

'공부 내용 정리' 카테고리의 다른 글
| SQL 고급 기능 (3) | 2025.08.08 |
|---|---|
| SQL 기본 문법 정리 (3) | 2025.08.07 |
| RESTful 설계란? (1) | 2025.08.04 |
| NestJS의 Interceptor란 (0) | 2025.08.01 |
| API 요청 처리 방식 (0) | 2025.07.31 |