본문으로 건너뛰기
yceffort
PostsSeriesTagsAbout🧪 Research
EN

Tweaks

theme
accent palette
film grain
minimal mode
BACK TO INDEX
◆ ESSAY
--min
--year
KOoriginal

mailMail icongithubtwitter
yceffort
•
© 2026
•
https://yceffort.kr
BACK TO INDEX
◆ ESSAY

Github 액션으로 스케쥴링 작업하기

avatar
yceffort
2020-07-16 · 2분
2min
2020year
KOoriginal
devopsgithub

Github actions가 나오면서 cron job을 실행하기가 더 편해졌습니다. 굳이 내 컴퓨터를 24시간 돌리고 있을 필요도 없고, 비싼 돈 주며 어디 이상한 compute를 쓸 필요도 없어졌습니다. 물론 공짜로 쓸 수 있는 Cron 서비스도 있지만 아무래도 github 과 연동할 수 있다는 점이 큰 장점인 거 같네요.

cron 설정

name: cron

on:
  schedule:
    # 실제 스케쥴 작업이 시작될 cron을 등록하면 됩니다.
    # 크론은 https://crontab.guru/ 여기서 확인하면 좋을 것 같습니다.
    # 이 크론은 평일 5시 (한국시간 14시)에 실행됩니다.
    - cron: '0 5 * * 1-5'

jobs:
  cron:
    runs-on: ubuntu-latest
    # 빌드 매트릭스는 여러가지 환경에서 실행될 수 있게 끔 도움을 줍니다.
    # 어차피 저는 테스트가 필요한 것이 아니고, 일반적인 node환경 만 필요하므로 이렇게만 설정해두겠습니다.
    # https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix
    strategy:
      matrix:
        node-version: [12.x]

    # 현재 레파지토리를 체크아웃합니다.
    # https://github.com/actions/checkout
    steps:
      - uses: actions/checkout@v2

      # Nodejs를 셋업합니다.
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2.1.0
        with:
          node-version: ${{ matrix.node-version }}

      # 캐시된 노드모듈이 있다면 그것을 쓰도록 합니다.
      # https://docs.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows#using-the-cache-action 를 참고했습니다.
      # key: key를 활용해서 cache를 만들어 저장합니다.
      # path: 캐시될 파일의 위치입니다.
      # OS와 package-lock.json을 기준으로 node_modules의 캐시를 만듭니다.
      - name: Cache node modules
        uses: actions/cache@v2.0.0
        env:
          cache-name: cache-node-modules
        with:
          path: node_modules
          key: ${{ runner.OS }}-build-${{ hashFiles('package-lock.json') }}
          restore-keys: |
            ${{ runner.OS }}-build-${{ env.cache-name }}-
            ${{ runner.OS }}-build-

      # 일반적인 ci를 실행합니다.
      - name: CI
        run: |
          npm ci

      # cron job을 실행합니다.
      - name: Run Cron
        run: |
          npm run something

관련 글

  • #web-performance#devops#github

    github workflow로 lighthouse ci 추가하기

    점수의 노예가 되버린 나

    2021-03-31·6분
  • #devops#github

    GitHub Actions cron이 제시간에 실행되지 않는 이유와 대안

    GitHub Actions schedule은 왜 수십 분씩 밀리는가. 구조적 원인과 정시 실행이 가능한 대안 정리.

    2021-01-24·7분
  • #devops#github

    Github Code Spaces 베타 당첨 및 후기

    이게 당첨이 되네 (사실 아무나 되는 건 아니었겠지)

    2020-09-18·3분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스
    #kubernetes#nextjs#nodejs

    파드는 어떻게 종료되는가: 배포 중 에러의 원인과 해결을 실측한 기록

    코드를 한 줄도 바꾸지 않은 배포에서도 에러는 샌다. 롤링 배포 중 새는 실패를 유형과 시각까지 태깅해 원인 네 가지를 부검하고, 처방을 한 층씩 얹어 0으로 만들기까지의 실측 기록이다. Next.js의 종료 코드 원문과 인질 드레인, CrashLoopBackOff의 실제 시간표까지. 프론트엔드 개발자를 위한 쿠버네티스 시리즈의 네 번째 편이다.

    2026-08-08·36분

새 글을 놓치고 싶지 않으시다면 RSS로 구독해 주세요.

RSS 구독 →

yceffort — 프론트엔드 엔지니어입니다. 발표·기술 자문·기고 문의는 이곳에서 받고 있습니다.

← Back to the blogIssue on GitHub →