깃허브 액션 (GitHub Actions)

컴퓨터과학·AI
한 줄 정의: 깃허브 저장소에서 코드 변경을 감지해 테스트, 빌드, 배포 등의 작업을 자동으로 실행해 주는 CI/CD 자동화 서비스.

쉽게 풀면

깃허브 액션은 코드를 저장소에 올릴 때마다(예: 커밋이나 풀 리퀘스트 시) 미리 정해둔 작업을 자동으로 실행해 주는 도구이다. 예를 들어 코드를 올릴 때마다 자동으로 테스트를 돌려서 버그가 없는지 확인하거나, 문서를 자동으로 빌드해 웹사이트에 게시하는 등의 작업을 사람이 매번 손으로 하지 않아도 되게 해준다. 연구 코드 저장소에서도 코드 스타일 검사나 테스트 자동 실행에 흔히 활용된다.

왜 중요한가

소프트웨어공학 연구에서는 자동화된 테스트와 배포 과정 자체가 분석 대상이 되기도 하고, 실험 재현성을 뒷받침하는 인프라로도 쓰인다. 지속적 통합(CI)이 코드 품질에 미치는 영향, 자동화가 개발자 생산성에 주는 효과 등은 이 분야에서 반복적으로 다뤄지는 연구 주제이며, 깃허브 액션은 그 사례를 관찰하기 쉬운 대표적인 플랫폼이다. 또한 오픈소스 연구 코드가 항상 정상 동작함을 보장하는 실용적 수단으로도 자주 언급된다.

논문에서는 이렇게 쓰입니다

"코드 품질 검증을 위해 모든 풀 리퀘스트에서 GitHub Actions를 통한 자동 테스트가 수행되었다."

코드가 새로 제출될 때마다 깃허브 액션이 자동으로 테스트를 실행해 코드에 문제가 없는지 점검했다는 뜻이다.

"오픈소스 저장소 1만여 개를 대상으로 GitHub Actions 워크플로 구성 파일을 수집하여 CI 채택 패턴을 분석하였다."

실증적 소프트웨어공학 연구에서 다수의 저장소로부터 워크플로 설정을 대규모로 수집해 개발 관행을 분석한 예이다.

"모델 재학습 및 벤치마크 결과 갱신은 GitHub Actions 워크플로를 통해 매 커밋마다 자동으로 수행되도록 구성하였다."

머신러닝 연구에서 코드 변경 시마다 실험을 자동으로 다시 돌려 결과를 최신 상태로 유지하는 데 활용한 사례이다.

조금 더 깊게 보면

깃허브 액션은 특정 이벤트(푸시, 풀 리퀘스트 등)를 계기로 YAML 형식의 워크플로 파일에 정의된 일련의 작업(job)과 단계(step)를 실행하는 구조이며, 각 작업은 격리된 실행 환경(러너)에서 동작한다. 연구 목적으로는 테스트 자동화 외에도 정기적인 스케줄 실행(cron 트리거)을 이용해 데이터 갱신이나 벤치마크 재실행을 자동화하는 데에도 쓰인다. 다만 무료 실행 시간이나 자원에 한계가 있어, 대규모 연산이 필요한 작업에는 별도의 컴퓨팅 자원과 연계하는 경우가 많다.

주의할 점

깃허브 액션은 CI/CD 파이프라인을 구현하는 여러 도구 중 하나이며, 젠킨스나 GitLab CI 같은 다른 대안 도구도 존재한다.

관련 용어