node9.io › 크론 표현식
이 크론, 언제 도나
다섯 칸을 한국말로 풀어드립니다. 요일 0이 일요일이라는 것부터 매번 헷갈리니까요.
크론 표현식 다섯 칸은 각각 무엇인가요?
앞에서부터 분 · 시 · 일 · 월 · 요일입니다. 요일은 0이 일요일입니다. 예를 들어 30 9 * * 1-5는 평일 오전 9시 30분입니다. 서버가 UTC라면 한국 시간에서 9시간을 빼서 적어야 합니다.
다섯 칸의 의미
| 칸 | 범위 | 예 |
|---|---|---|
| 분 | 0-59 | */10 10분마다 |
| 시 | 0-23 | 9 오전 9시 |
| 일 | 1-31 | 1 매월 1일 |
| 월 | 1-12 | 1,7 1월과 7월 |
| 요일 | 0-6 (0=일요일) | 1-5 평일 |
일과 요일을 둘 다 쓰면 OR 입니다
많은 크론 구현에서 일과 요일을 동시에 지정하면 둘 중 하나만 맞아도 실행됩니다.
0 0 1 * 1 은 "매월 1일 그리고 월요일"이 아니라
"매월 1일 또는 매주 월요일"입니다. 의도보다 훨씬 자주 돌게 되는 흔한 함정입니다.
UTC 서버에서 한국 시간에 맞추기
서버 시간대가 UTC라면 크론도 UTC로 해석됩니다.
한국 기준 오전 9시에 돌리고 싶으면 0 0 * * * (UTC 0시)로 적어야 합니다.
한국 오전 8시는 UTC로 전날 23시가 되므로 날짜 칸까지 영향을 받습니다.
시간 변환기로 먼저 확인해 보세요.
자주 묻는 질문
크론의 요일에서 0은 무슨 요일인가요?
일요일입니다. 0부터 6까지가 일요일에서 토요일이며, 7도 일요일로 취급하는 구현이 많습니다.
평일에만 돌리려면 어떻게 쓰나요?
요일 칸에 1-5를 넣습니다. 예를 들어 30 9 * * 1-5 는 평일 오전 9시 30분입니다.
일과 요일을 둘 다 지정하면 어떻게 되나요?
대부분의 크론 구현에서 둘 중 하나만 맞아도 실행됩니다. AND가 아니라 OR로 동작하므로 의도치 않게 자주 실행될 수 있습니다.
서버가 UTC인데 한국 시간 기준으로 돌리려면?
적고 싶은 한국 시각에서 9시간을 뺍니다. 한국 오전 9시는 UTC 0시, 한국 오전 8시는 전날 UTC 23시입니다.