·4분 읽기

맥용 크론 표현식 도우미

스케줄 표현식을 손으로 작성하고 의도한 대로 작동하기를 바라는 것은 작업이 오후 3시가 아니라 새벽 3시에 실행되는 원인이 됩니다.

크론 문법은 숫자와 기호로 이루어진 다섯 개의 필드로 "공휴일을 제외한 평일 오전 9시마다" 또는 "8시부터 6시 사이 15분마다"를 표현해야 합니다. 필드는 분, 시, 일, 월, 요일 순서인데 아무도 처음에는 정확히 기억하지 못하고, 별표, 쉼표, 대시, 슬래시는 위치에 따라 각기 다른 의미를 가집니다.

0 9 * * 1-5는 그럴듯해 보이지만, 이것이 오전 9시인지 오후 9시인지, 그리고 크론 구현체가 일요일을 0으로 세는지 7로 세는지에 따라 1-5가 월요일부터 금요일을 의미하는지 완전히 다른 것을 의미하는지 알 수 없습니다. 배포 파이프라인, 백업 작업, 예약된 리포트에서 이를 잘못 설정하면 조용한 실패이거나 불편한 시간에 작업이 실행되는 결과로 이어지며, 때로는 아무도 눈치채지 못한 채 몇 주가 지나기도 합니다.

모든 크론 구현체는 저마다의 특이점이 있습니다

표준 유닉스 크론, Kubernetes CronJob, AWS EventBridge, 그리고 다양한 CI 플랫폼은 모두 대략 같은 다섯 필드 문법을 사용하지만 미묘한 차이가 있습니다 — 초를 지원하는지, 요일 번호가 어떻게 작동하는지, @daily 같은 특정 축약 문자열이 유효한지 등입니다. 첫 배포에서 제대로 작동하는 스케줄을 작성하려면 정확히 어떤 종류의 크론을 대상으로 하는지 이해해야 합니다.

표현식을 평범한 문장으로 번역하기

Bellows는 스케줄 문자열을 받아 실제로 무엇을 의미하는지 평범한 언어로 설명해 주는 크론 표현식 도우미를 포함해서, 예약된 작업을 어디에든 배포하기 전에 의도한 바를 확인할 수 있습니다.

Bellows cron expression helper explaining a schedule string on macOS

배포 전에 확인하기

잘못된 시간에 실행되는 예약 작업은 종종 조용한 실패입니다 — 아무것도 크래시하지 않고, 그저 의도하지 않은 시점에 실행될 뿐이며, 때로는 유지보수 윈도우와 겹치거나 트래픽이 몰리는 시간에 데이터베이스를 두드릴 수 있습니다. 배포 설정을 머지하기 전에 크론 문자열의 평범한 의미를 확인하면 이것이 새벽 2시의 호출로 이어지기 전에 막을 수 있습니다.

다른 사람의 스케줄 읽기

이미 십여 개의 크론 작업이 있는 코드베이스를 물려받으면, 어느 것이든 안전하게 변경하기 전에 각각이 무엇을 하는지 알아내야 합니다. 각 표현식을 빠르게 번역하는 것이 다섯 개의 알쏭달쏭한 필드를 한 번에 하나씩 머릿속으로 파싱하는 것보다 빠릅니다.

Mac App Store에서 Bellows 받기

다음 기사

Bellows

41 developer tools in one native Mac app — JSON, JWT, Base64, hashes, and more.

Get Bellows on the Mac App Store