GitHub Actions 입문, 반복 작업 자동화 시작

GitHub Actions 입문자를 위한 자동화 설정 가이드. 반복적인 개발 워크플로우를 효율적으로 자동화하는 방법을 단계별로 알아보고 생산성을 높여보세요.

매번 코드를 수정할 때마다 수동으로 테스트를 돌리고 서버에 배포 파일을 직접 전송하느라 밤을 지새우는 상황, 이제 GitHub Actions 자동화 입문을 통해 그 무의미한 반복 작업에서 벗어나고 싶을 것입니다. 이런 비효율이 발생하는 근본적인 원인은 빌드, 테스트, 배포의 일련의 과정이 개발자의 직접적인 개입 없이는 자동으로 순차적으로 실행되지 않기 때문입니다. 이 글에서는 GitHub Actions 자동화 입문 수준에 맞춰 워크플로우 파일을 처음 작성하는 방법부터 실제로 배포까지 자동화하는 구체적인 설정 과정을 단계별로 상세히 안내합니다.

함께 보면 좋은 글: ChatGPT 무료로 이메일 작성, 5가지 꿀팁

이 글의 핵심

- GitHub Actions의 기본 개념인 워크플로우, 잡, 스텝의 구조를 명확히 이해하고 YAML 파일을 직접 작성하는 방법
- 실무에서 자주 사용하는 Ubuntu 환경과 Node.js 실행기를 설정하여 테스트를 자동화하는 단계
- AWS S3와 같은 외부 서비스와 연동하여 코드 푸시 시 자동으로 배포되는 지속적 배포(CD) 파이프라인 구축

한 줄 답변

GitHub Actions를 통해 반복적인 개발 작업을 자동화하여 효율성을 높이고, 코드 배포 및 테스트 과정을 간소화하는 방법을 입문자도 쉽게 시작할 수 있습니다.

90%
반복 작업 자동화 효율 증대
10분
수동 배포 대비 시간 절약
5단계
간단한 워크플로우 설정
무료
오픈소스 프로젝트 지원
2026년 06월 19일· 16분 읽기· Mebys Blog

GitHub Actions 자동화 입문을 위한 핵심 개념과 원리

GitHub Actions는 코드 저장소에서 특정 이벤트가 발생했을 때 자동으로 소프트웨어 개발 워크플로우를 실행할 수 있는 도구입니다. 여기서 말하는 워크플로우는 하나 이상의 작업(Job)을 실행하는 자동화된 프로세스를 의미하며, 이 과정은 GitHub가 호스팅하는 가상 머신인 러너(Runner) 위에서 수행됩니다. 개발자는 별도의 서버를 구축할 필요 없이 GitHub 클라우드 리소스를 활용하여 복잡한 배포 과정을 처리할 수 있습니다. 이는 개발 생산성을 극대화하고, 반복적인 수동 작업을 줄여 코드 품질 향상에 집중할 수 있게 해주는 강력한 기능입니다.

이 시스템의 핵심은 이벤트 기반 트리거입니다. 예를 들어, 개발자가 main 브랜치에 코드를 푸시(Push)하거나 풀 리퀘스트(Pull Request)를 생성하는 순간, 미리 정의된 YAML 파일이 작동을 시작합니다. 이 파일은 .github/workflows 디렉터리에 위치해야 하며, 저장소의 루트 폴더에 이 경로를 생성하는 것이 첫 단계입니다. GitHub 공식 문서에 따르면, 이 워크플로우 파일은 저장소 내에서 소스 코드와 함께 버전 관리되므로 팀원 간의 설정 공유가 매우 용이합니다. 또한, 워크플로우는 여러 개의 '잡(Job)'으로 구성될 수 있으며, 각 잡은 하나 이상의 '스텝(Step)'으로 이루어집니다. 스텝은 실제 실행되는 명령어 또는 액션을 의미합니다.

실제 사용자들은 배포 자동화를 구축할 때 배경지식 부족으로 어려움을 겪기도 합니다. 실제 사용자는 클리엔 서버 파크 게시판에서 "분명히 이거 이미 누군가 해본걸텐데 chatgpt에도 물어봐도 없다고 해서 일단 codex통해서 만들고는 있습니다만 배경지식이 없다보니 쉽지 않네요"라고 언급하며 기초 이해의 중요성을 강조했습니다(clien.net). 따라서 단순히 코드를 복사 붙여넣기보다는, 각 설정이 어떤 역할을 하는지 이해하는 것이 GitHub Actions 자동화 입문의 가장 빠른 길입니다. 예를 들어, on: [push]는 푸시 이벤트에 의해 워크플로우가 트리거됨을 의미하며, runs-on: ubuntu-latest는 최신 Ubuntu 환경에서 잡이 실행됨을 나타냅니다. 이러한 기본 개념을 확실히 이해하면 복잡한 자동화 시나리오도 쉽게 설계할 수 있습니다.

GitHub Actions는 단순히 코드 빌드나 테스트를 넘어, 코드 품질 검사, 문서 자동 생성, 심지어는 소셜 미디어 알림 발송까지 다양한 자동화 작업에 활용될 수 있습니다. 예를 들어, 새로운 기능 개발 후 PR이 생성될 때마다 자동으로 코드 리뷰 도구를 실행하여 잠재적인 버그를 사전에 발견하거나, 프로젝트의 README 파일에 최신 빌드 상태를 반영하는 등의 작업을 자동화할 수 있습니다. 이는 개발 팀의 효율성을 높일 뿐만 아니라, 프로젝트의 전반적인 품질 관리 수준을 향상시키는 데 크게 기여합니다. GitHub Actions의 유연성과 확장성은 개발 워크플로우를 혁신적으로 개선할 수 있는 잠재력을 가지고 있습니다.

주의
GitHub Actions는 무료 요금제에서도 공개 저장소에 대해서는 무제한 사용이 가능하지만, 비공개 저장소는 월 2,000분이라는 제한이 있습니다. 따라서 개인 프로젝트나 소규모 팀에서는 사용 시간을 모니터링하는 것이 중요합니다. 또한, 각 운영체제별 러너 사용 시간 차이가 존재하므로, 특히 Windows나 macOS 러너를 사용할 경우 비용에 대한 고려가 필요합니다.
GitHub Actions 자동화 입문

Photo by Pavel Danilyuk on Pexels

GitHub Actions 플랜 및 실행 환경 비교 분석

GitHub Actions를 효율적으로 활용하기 위해서는 본인의 프로젝트 규모와 요구 사항에 맞는 실행 환경과 플랜을 선택해야 합니다. 특히 러너(Runner)의 운영체제와 스펙은 빌드 시간과 비용에 직접적인 영향을 미치므로, 신중한 비교가 필요합니다. GitHub는 다양한 가격 정책과 실행 환경을 제공하며, 각 옵션은 특정 사용자 층에게 최적화되어 있습니다. Free 플랜은 개인 개발자나 오픈소스 프로젝트에 이상적이지만, 비공개 저장소의 경우 사용 시간에 제약이 따릅니다.

구분 GitHub Free (Public) GitHub Pro GitHub Team
공식 가격 0원 월 4달러 (사용자당) 월 4달러 (사용자당)
핵심 스펙 무제한 무료 사용, 2코어 CPU, 7GB RAM 월 3,000분 무료, 2코어 CPU, 7GB RAM 월 10,000분 무료, 2코어 CPU, 7GB RAM
출처 URL github.com/pricing github.com/pricing github.com/pricing
추천 대상 오픈소스 기여자 및 학생 개인 개발자 및 포트폴리오 관리 스타트업 및 소규모 개발팀

위 표를 통해 알 수 있듯이, 개인 학습용이나 오픈소스 프로젝트라면 Free 플랜의 Ubuntu 최신 버전(Ubuntu Latest) 러너가 가장 적합합니다. Ubuntu 기반의 러너는 리눅스 환경에서의 대부분의 개발 도구를 지원하며 안정적이고 빠릅니다. 반면, 윈도우나 맥OS 기반 애플리케이션을 개발 중이라면 각각 windows-latest, macos-latest 러너를 선택해야 합니다. 다만, 윈도우와 맥OS 러너는 리소스 사용량에 따라 크레딧이 2배 또는 10배 차감되므로 이 점을 유의해야 합니다. 예를 들어, 10분 동안 Ubuntu 러너를 사용하면 10분으로 계산되지만, macOS 러너를 사용하면 100분으로 계산될 수 있습니다. 따라서 비용 효율성을 고려하여 프로젝트 환경에 맞는 러너를 선택하는 것이 중요합니다.

GitHub Actions는 자체 호스팅 러너(Self-hosted runner)도 지원합니다. 이는 자체 서버나 온프레미스 환경에 러너를 설치하여 사용하는 방식으로, 민감한 데이터를 다루거나 특정 하드웨어 환경이 필요한 경우 유용합니다. 자체 호스팅 러너는 사용 시간에 대한 제한이 없으며, 원하는 사양으로 구성할 수 있다는 장점이 있습니다. 하지만 러너 관리 및 유지보수에 대한 책임이 사용자에게 있으므로, 운영 부담을 고려해야 합니다. 대규모 조직이나 특정 요구사항이 있는 경우, 자체 호스팅 러너는 비용 절감 및 유연성 확보에 큰 도움이 될 수 있습니다.

러너의 종류 외에도, GitHub Actions는 다양한 운영체제 버전을 지원합니다. 예를 들어 Ubuntu의 경우 ubuntu-18.04, ubuntu-20.04, ubuntu-latest와 같이 특정 버전 또는 최신 버전을 선택할 수 있습니다. 일반적으로 latest 태그를 사용하는 것이 편리하지만, 특정 라이브러리나 도구와의 호환성을 위해 특정 버전을 고정해야 할 수도 있습니다. 프로젝트의 의존성 관리를 위해 러너 환경을 신중하게 선택하는 것이 좋습니다.

참고
GitHub Actions 사용량 초과 시 비용이 발생할 수 있으므로, Settings 탭의 Billing 메뉴에서 현재 사용량과 잔여 분을 수시로 확인하는 것이 좋습니다. 특히 무료 분을 초과했을 때의 비용 청구를 방지하려면 Spending limit을 0달러로 설정하는 것을 권장합니다. 또한, GitHub Marketplace에는 다양한 사전 구축된 액션들이 존재하므로, 필요한 기능을 직접 구현하기 전에 해당 액션이 있는지 찾아보는 것이 시간과 노력을 절약하는 좋은 방법입니다.

첫 번째 워크플로우 파일 작성 및 기본 설정

동영상으로 보는 GitHub Actions 자동화 입문

글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.

▶ YouTube에서 “GitHub Actions 자동화 입문” 영상 보기

이제 실제로 워크플로우를 정의하는 YAML 파일을 작성해 보겠습니다. 이 과정은 GitHub Actions 자동화 입문의 가장 실질적인 단계입니다. 먼저 프로젝트 저장소의 루트 경로에 .github/workflows 폴더를 생성하고, 그 안에 test.yml이라는 이름의 파일을 만듭니다. 파일의 확장자는 반드시 .yml 또는 .yaml이어야 합니다. 이 디렉터리 구조는 GitHub Actions가 워크플로우 파일을 인식하는 표준 경로입니다.

가장 기본적인 형태의 워크플로우는 다음과 같습니다. 이 코드는 main 브랜치에 코드가 푸시되었을 때, "Hello World"를 출력하는 간단한 쉘 스크립트를 실행합니다. 이 예시는 GitHub Actions의 기본적인 구조와 동작 방식을 이해하는 데 도움을 줄 것입니다.

name: Learn GitHub Actions

on: [push]

jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Install bats
        run: npm install -g bats
      - name: Check bats version
        run: bats -v

이 코드의 구조를 분석해 보면, name은 워크플로우의 이름을 정의하고, on은 언제 워크플로우를 실행할지 결정하는 트리거를 설정합니다. jobs 안에는 실제 실행할 작업인 check-bats-version이 있으며, 이 작업은 ubuntu-latest 환경에서 돌아갑니다. steps는 작업의 순서를 나타내며, 각 스텝은 순차적으로 실행됩니다. uses 키워드는 미리 정의된 액션(Action)을 가져와 사용하는 것을 의미합니다. actions/checkout@v4는 저장소의 코드를 러너로 가져오는 필수 액션이며, actions/setup-node@v4는 Node.js 환경을 설정하는 액션입니다. run 키워드는 쉘 명령어를 직접 실행할 때 사용됩니다.

웹퍼블리셔를 준비 중인 입문자도 이러한 자동화 도구 학습이 필수적입니다. 실제 사용자는 디시인사이드 갤러리에서 "목표는 웹퍼블리셔입니다. 학원(국비과정X)다니면서 따로 집에서 들으려고 하는데 기초쌓는걸로 괜찮을까요?"라고 질문하며 기초적인 기술 스택을 쌓는 것의 중요성을 시사했습니다(dcinside.com). 웹퍼블리셔라고 할지라도 CI/CD 파이프라인 구축은 필수적인 역량이 되었기에, 이 단계에서 YAML 문법과 기본 명령어를 익히는 것은 큰 도움이 됩니다. 특히 프론트엔드 개발에서는 빌드 도구(Webpack, Vite 등) 설정, 정적 파일 배포, 테스트 실행 등의 과정이 자동화될 때 개발 효율성이 크게 향상됩니다.

워크플로우 파일 작성 시 몇 가지 고려사항이 있습니다. 첫째, YAML 문법은 들여쓰기가 매우 중요하므로 오타나 잘못된 들여쓰기 없이 정확하게 작성해야 합니다. 둘째, 각 스텝에는 고유한 name을 부여하여 각 스텝이 어떤 역할을 하는지 명확히 하는 것이 좋습니다. 이는 워크플로우 실행 로그를 확인할 때 가독성을 높여 디버깅에 도움을 줍니다. 셋째, uses 액션을 사용할 때는 최신 버전 또는 특정 버전을 명시하는 것이 안정적인 워크플로우 운영에 유리합니다. 예를 들어 actions/checkout@v3 대신 actions/checkout@v4를 사용하는 것처럼 말입니다.

1

파일 생성

저장소 루트에 .github/workflows/my-workflow.yml 경로로 파일 생성.

2

워크플로우 이름 정의

name 키를 사용하여 워크플로우의 이름을 지정합니다.

3

트리거 설정

on 키를 사용하여 워크플로우가 실행될 이벤트를 정의합니다. (예: push, pull_request, schedule)

4

잡(Job) 정의

jobs 키 아래에 실행할 잡들을 정의합니다. 각 잡은 고유한 이름을 가집니다.

5

실행 환경 지정

각 잡 내에서 runs-on 키를 사용하여 실행될 러너 환경을 지정합니다. (예: ubuntu-latest)

6

스텝(Step) 정의

각 잡 내에서 steps 키 아래에 실행할 스텝들을 순서대로 정의합니다.

7

액션 또는 명령어 실행

스텝에서는 uses를 사용하여 액션을 실행하거나, run을 사용하여 쉘 명령어를 실행합니다.

GitHub Actions 자동화반복 작업 자동화90입문 용이성80기능 확장성85시간 절약95
GitHub Actions 자동화 입문 시각 정리

CI 파이프라인 구축으로 테스트 자동화 실현

GitHub Actions 자동화 핵심 지표

50%

반복 작업 감소율

10분

CI/CD 설정 시간

200+

액션 마켓플레이스 항목

100%

오픈 소스 프로젝트 호환

지속적 통합(Continuous Integration, CI)은 개발자가 코드를 자주 통합하여 각 통합이 자동으로 빌드되고 테스트되는 개발 방법론입니다. GitHub Actions를 사용하면 이러한 CI 파이프라인을 손쉽게 구축할 수 있으며, 코드 변경 시마다 자동으로 테스트를 실행하여 버그를 조기에 발견하고 코드 품질을 유지할 수 있습니다. 이 섹션에서는 Node.js 프로젝트를 예시로 들어 CI 파이프라인을 구축하는 과정을 상세히 살펴보겠습니다.

CI 파이프라인의 핵심은 코드 푸시 또는 풀 리퀘스트 생성 시 자동으로 빌드 및 테스트를 실행하는 것입니다. 이를 위해 Node.js 프로젝트의 경우, package.json 파일에 정의된 테스트 스크립트를 실행하도록 워크플로우를 설정해야 합니다. 일반적인 Node.js 프로젝트에서는 npm test 또는 yarn test 명령어를 사용합니다.

다음은 Node.js 프로젝트를 위한 CI 워크플로우 예시입니다. 이 워크플로우는 main 브랜치에 푸시되거나 풀 리퀘스트가 생성될 때 실행되며, 여러 Node.js 버전에 대해 테스트를 수행합니다.

name: Node.js CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.

자주 묻는 질문

Q. GitHub Actions란 정확히 무엇인가요?

A. GitHub Actions는 코드 저장소에 직접 통합된 CI/CD(지속적 통합/지속적 배포) 및 자동화 워크플로우 플랫폼입니다. 코드를 푸시하거나 풀 리퀘스트를 생성하는 등 특정 이벤트가 발생했을 때 사용자 지정 스크립트와 명령을 실행하여 반복적인 작업을 자동화할 수 있습니다.

Q. GitHub Actions를 사용하면 어떤 이점이 있나요?

A. GitHub Actions를 사용하면 빌드, 테스트, 배포와 같은 반복적인 개발 작업을 자동화하여 시간을 절약하고 오류 발생 가능성을 줄일 수 있습니다. 또한, 코드 품질을 높이고 개발 프로세스를 더욱 효율적으로 만들 수 있습니다.

Q. GitHub Actions를 시작하려면 어떤 준비가 필요한가요?

A. GitHub Actions를 시작하기 위한 특별한 준비는 없습니다. GitHub 계정만 있으면 누구나 무료로 사용할 수 있습니다. `.github/workflows` 디렉토리에 YAML 형식의 워크플로우 파일을 작성하여 자동화할 작업을 정의하면 됩니다.

Q. 어떤 종류의 작업을 GitHub Actions로 자동화할 수 있나요?

A. 빌드 및 테스트 실행, 코드 배포, 코드 스타일 검사, 이슈 및 풀 리퀘스트 관리, 커밋 메시지 검증 등 다양한 작업을 자동화할 수 있습니다. GitHub Marketplace에서 제공되는 수많은 액션을 활용하거나 직접 스크립트를 작성하여 원하는 작업을 구현할 수 있습니다.

매주 IT 실전 가이드 받아보세요

맥OS·크롬·자동화·AI 도구 주 1회 큐레이션. 광고·스팸 없는 깔끔한 메일.

무료 구독하기

M
Mebys Blog
맥OS · 크롬 · 자동화 · AI 도구 가이드


댓글 남기기

Mebys Blog에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기