site_logo

cron expressions (크론 표현식) 초간단 정리

오늘은 GitHub Action을 사용해 파이썬 파일을 실행하기 위해 열심히 세팅해주는 작업을 했다. 이상하게도 자꾸만 쉘 스크립트 관련 문제가 떠서 오류와의 전쟁을 하는 와중에 쉬어가는 코너로 cron 표현식이라는 걸 정리해보겠다.

🤔 cron 표현식이란?

크론 표현식이란 날짜와 시간을 나타내는 표현문이다. 주로 일정한 시간마다, 혹은 특정 간격마다 정해진 일을 수행할 때에 사용되며 난 이번에 깃허브 액션으로 매일 정해진 시간에 파이썬 파일을 실행하기 위해 크론 표현식을 사용했다.

cron 표현식 예시

깃허브 액션을 위한 yml 파일이다. 표시된 부분이 보이는가? on 부분에 schedule을 추가해주면 정해진 시간마다 파이썬 파일을 실행하게 세팅하는 것이다. 이때 cron 표현식을 사용하면 간편하게 날짜와 시간을 정해줄 수 있다.

🧑‍💻 cron 표현식의 문법

크론 표현식은 총 다섯개의 파트로 이뤄진다. * * * * * 가 기본 베이스이며 여기에서 필요한 영역에 원하는 숫자를 채워주면 된다. 각 파트의 역할은 이렇다👇

* * * * *
| | | | |
| | | | +---- 요일 (0 - 7) (0과 7은 일요일)
| | | +------ 월 (1 - 12)
| | +-------- 일 (1 - 31)
| +---------- 시간 (0 - 23)
+------------ 분 (0 - 59)

이렇게 크론 표현식을 사용하면 월, 일, 요일, 시간, 분 단위 까지 액션을 수행할 시각을 정해줄 수 있다.

🧑‍💻 사용 예시

예를 들어 보자. 게시글 위에서 남긴 스크린샷의 사례를 분석해보면 이렇다.

0 15 * * *
| | 
| | 
| | 
| | 
| +---------- 15시
+------------ 0분

15시 0분이 될 때마다 액션을 실행하도록 의도한 표현식이다. 일, 월, 요일 부분은 전부 * 로 비워두었으므로 일, 월, 요일은 고려하지 않는다는 걸 의미한다. 이 경우 “매일 15시 0분마다 수행” 이라고 해석할 수 있다.

만약 “매 달 수요일마다 9시에 실행” 으로 세팅하고 싶다면, 이렇게 할 것이다.👇

0 9 * * 3

🤔 .yml 파일에서 스케줄을 뺀다면?

만약 .yml 파일에서 스케줄 부분을 삭제한다면, 정해둔 시각마다 수행하는 것이 아니라 당신이 “push” 명령어를 실행할 때마다 파이썬 파일을 실행하게 된다.

yml 파일에서 스케줄 삭제한 모습

이렇게 비워 두면 당신이 push 명령어를 실행할 때마다 액션을 수행하게 된다. 브랜치명을 정확하게 적어주는 것도 잊지 말자! 참고로 push 명령어는:

git push origin 브랜치명
워크플로우에 액션이 추가된 모습

짠~ 이렇게 깃헙 워크플로우에 액션이 추가된 것을 볼 수 있다. 저 노랑색 동그라미가 돌면서 로딩되다가 초록색으로 바뀌어야 정상… 인데 난 이 단계에서 자꾸 빨간색 ❌표시 로 변하면서 127 에러가 뜬다ㅠ 아마 쉘 스크립트 파일 관련 문제인 것 같아서 이것저것 시도해보고 있다. 문제가 해결되면 이 내용도 업로드할 예정!

🍀함께 보면 도움되는 글🍀
파이썬 모듈 import 실패할 때 해결 방법
git push 안되는 문제 해결하기 (Pycharm, GitHub)
파이참 터미널 실행 방법 (메뉴 위치, 단축키)

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top
yellow-solid

Social Media

Blog