GitHub Actions 개요 및 기본 개념
GitHub Actions의 개념과 기본 구조를 소개하고, 간단한 Workflow 예제를 통해 CI/CD 자동화의 기초를 설명합니다.
소프트웨어 개발에서 자동화(Automation) 는 필수 요소가 되었습니다. 코드 변경이 있을 때마다 자동으로 빌드, 테스트, 배포가 이루어진다면 개발 생산성이 향상되고, 안정적인 소프트웨어를 유지할 수 있습니다. 이러한 CI/CD(Continuous Integration / Continuous Deployment) 자동화를 도와주는 도구 중 하나가 바로 GitHub Actions입니다. 이번 글에서는 GitHub Actions의 개념과 기본 구조를 살펴보겠습니다.
1. CI/CD란 무엇인가?
CI(Continuous Integration, 지속적 통합)
CI는 코드 변경 사항을 자동으로 빌드(Build) 및 테스트(Test) 하여 코드의 품질을 유지하는 기법입니다. 개발자가 새로운 기능을 추가하거나 버그를 수정할 때, 코드가 올바르게 동작하는지 즉시 검증할 수 있습니다.
CD(Continuous Deployment, 지속적 배포)
CD는 검증된 코드를 자동으로 배포(Deploy) 하는 과정입니다. CI를 통해 코드의 품질이 보장되었다면, 이를 신속하게 운영 환경에 배포하여 사용자에게 제공할 수 있습니다.
CI/CD의 핵심 목표
- 코드 변경 사항을 신속하게 검증 및 배포
- 반복적인 작업을 자동화하여 개발 생산성 향상
- 코드 품질을 유지하고 배포 과정에서의 실수 방지
2. GitHub Actions란?
GitHub Actions는 GitHub에서 제공하는 CI/CD 자동화 도구입니다. GitHub Actions를 사용하면 코드 변경이 발생할 때마다 자동으로 빌드, 테스트, 배포 등의 작업을 수행할 수 있습니다.
GitHub Actions의 주요 특징
- GitHub 저장소와 완벽하게 통합
- YAML 파일(
.github/workflows/
)을 사용하여 손쉽게 설정 가능 - Linux, macOS, Windows 등 다양한 실행 환경 지원
- 커스텀 Actions 및 오픈소스 Actions 활용 가능
- 무료 요금제에서도 GitHub-hosted Runner 사용 가능
3. GitHub Actions의 주요 개념
GitHub Actions를 사용하려면 다음과 같은 개념을 이해해야 합니다.
Workflow (워크플로우)
- 자동화할 작업을 정의하는 YAML 파일
.github/workflows/
폴더 안에 위치함- 여러 개의 Jobs(작업) 로 구성됨
Jobs (작업)
- 하나 이상의 Step(단계) 으로 이루어진 실행 단위
- 여러 개의 Job을 병렬 또는 순차적으로 실행 가능
Steps (단계)
- 각 Job에서 실행되는 개별 명령어
- 코드 빌드, 테스트, 배포 등의 작업을 수행함
Runner (실행 환경)
- Workflow를 실행하는 서버
- GitHub에서 제공하는 GitHub-hosted Runner 또는 자신만의 Self-hosted Runner 사용 가능
정리하면?
Workflow → Job → Step 순서로 구성되며, Runner에서 실행됩니다!
4. .github/workflows/
폴더 및 기본 구조 설명
GitHub Actions를 사용하려면 .github/workflows/
폴더 안에 YAML 파일을 생성해야 합니다.
📁 프로젝트 구조 예시
1
2
3
4
5
6
7
8
9
10
11
📂 .github/
├── 📂 workflows/ # 깃허브 액션 워크플로우 파일 저장소
│ ├── backend-ci.yml # Django 백엔드 CI (테스트 및 빌드)
│ ├── frontend-ci.yml # 프론트엔드 CI (빌드 및 테스트)
│ ├── backend-cd.yml # Django 백엔드 배포 (CD)
│ ├── frontend-cd.yml # 프론트엔드 배포 (CD)
│ ├── deploy-all.yml # 전체 CI/CD 통합 배포 (옵션)
│ ├── lint.yml # 코드 린트 및 스타일 체크
│ ├── dependabot.yml # 종속성 자동 업데이트
│ ├── security.yml # 보안 취약점 검사 (선택)
│ └── schedule.yml # 정기 실행 워크플로우 (선택)
5. 간단한 Workflow 예제 (.github/workflows/sample.yml
)
GitHub Actions에서 가장 기본적인 예제는 코드를 푸시할 때마다 실행되는 Workflow입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: CI Example # Workflow 이름
on: [push, pull_request] # 실행 트리거 (코드를 푸시하거나 PR 생성 시 실행)
jobs:
build:
runs-on: ubuntu-latest # 실행 환경 (Ubuntu 최신 버전)
steps:
- name: Checkout Repository # GitHub 저장소 가져오기
uses: actions/checkout@v4
- name: Run a simple command # 간단한 Shell 명령어 실행
run: echo "Hello, GitHub Actions!"
이 코드가 하는 일
- 저장소에 코드가 push 또는 pull request될 때 실행됨
- GitHub-hosted Runner에서 Ubuntu 최신 버전 환경을 사용
- 저장소의 코드를 체크아웃(가져오기)
"Hello, GitHub Actions!"
메시지를 출력하는 Shell 명령어 실행
6. 정리
GitHub Actions의 기본 개념을 정리하면?
- GitHub Actions는 CI/CD 자동화를 위한 도구
.github/workflows/
폴더에 YAML 파일을 생성하면 사용 가능- Workflow → Jobs → Steps 구조로 이루어짐
- GitHub-hosted Runner에서 실행 가능
- Push 또는 PR을 할 때 자동으로 실행되는 Workflow를 만들 수 있음