← 모든 기록
GitHub Actions로 웹사이트 깨진 링크 정기 검사하는 완벽 가이드 대표 이미지
자동화

GitHub Actions로 웹사이트 깨진 링크 정기 검사하는 완벽 가이드

소규모 사업자도 손쉽게 웹사이트 깨진 링크를 정기 검사할 수 있도록 GitHub Actions 스케줄 기반 자동화를 단계별로 설명합니다.

GitHub Actions를 사용하면 깨진 링크 검사 워크플로우를 자동으로 실행할 수 있습니다. 크론 스케줄을 설정하면 매일 또는 원하는 주기로 검사를 반복합니다. 이 글에서는 워크플로우 파일 작성부터 결과 알림까지 단계별로 안내합니다.

GitHub Actions와 워크플로우 기본 이해하기

GitHub Actions는 저장소에서 이벤트가 발생할 때 자동으로 작업을 실행하는 CI/CD 도구입니다. GitHub Actions는 공개 저장소에서 무료로 이용할 수 있습니다. 이 기능을 활용하면 푸시, 풀 리퀘스트, 또는 시간 스케줄과 같은 트리거에 반응하여 자동으로 깨진 링크를 점검할 수 있습니다.

깨진 링크 검사 도구 선택하기

깨진 링크를 검사하는 방법은 다양합니다. 가장 간편한 방법은 커뮤니티에서 제공하는 GitHub Actions 액션을 사용하는 것입니다. 대표적으로 lycheeverse/lychee-action이 있으며, 이 액션은 웹사이트의 URL을 검사하고 결과 리포트를 생성합니다. 그 외 Node.js 기반 broken-link-checker를 직접 실행하는 방식도 가능합니다. 이 글에서는 lychee-action을 기준으로 설명합니다.

스케줄 설정으로 정기 실행하기

워크플로우를 정기적으로 실행하려면 cron 문법을 사용합니다. 예를 들어, 매일 아침 8시에 검사하려면 schedule: - cron: '0 8 * * *' 처럼 설정합니다. 6시간마다 워크플로우를 실행하여 데이터를 수집하는 사례도 있습니다. 크론식은 UTC 시간 기준이므로 한국 시간에 맞추려면 9시간을 빼야 합니다. 예를 들어, 한국 오전 9시는 UTC 0시에 해당하므로 cron: '0 0 * * *' 으로 설정합니다.

워크플로우 파일 작성하기

저장소에 GitHub Actions 워크플로우를 추가하려면 다음 단계를 따르세요.

  1. 프로젝트 루트에 .github/workflows 디렉토리를 생성합니다.
  2. 새 워크플로우 파일을 broken-link-check.yml이라는 이름으로 만듭니다.
  3. 파일에 name, on, jobs를 정의합니다. on.schedule에 크론식을 넣어 정기 실행을 설정합니다.
  4. jobs.steps에서는 actions/checkout으로 코드를 가져온 후 lycheeverse/lychee-action 액션을 실행합니다.
  5. 액션에 인수로 검사할 사이트 URL이나 설정 파일을 전달합니다.
  6. 변경 사항을 커밋하고 푸시하면 워크플로우가 스케줄에 따라 자동 실행됩니다.

구체적인 예시는 다음과 같은 주요 요소를 포함해야 합니다.

  • name: 워크플로우 이름
  • on.schedule: 실행 주기
  • jobs.check-links.runs-on: ubuntu-latest
  • steps: 코드 체크아웃, lychee 액션 실행, 결과 업로드 (필요 시)

실행 확인 및 결과 알림 설정

워크플로우가 실행되면 저장소의 Actions 탭에서 결과를 확인할 수 있습니다. lychee 액션은 기본적으로 마크다운 리포트를 생성하므로, 이를 아티팩트로 업로드하거나 이메일, 슬랙 등으로 전송할 수 있습니다. actions/upload-artifact 스텝을 추가하면 리포트 파일을 저장소에서 다운로드할 수 있습니다. 알림을 받으려면 slackapi/slack-github-action이나 dawidd6/action-send-mail과 같은 알림 액션을 연동합니다.

문제 해결

웹사이트 전반의 유지보수 전략이 궁금하다면 소규모 사업자 홈페이지 유지보수 체크리스트를 참고하세요.

참고 자료