Post

GitHub Actions 개요 및 기본 개념

GitHub Actions의 개념과 기본 구조를 소개하고, 간단한 Workflow 예제를 통해 CI/CD 자동화의 기초를 설명합니다.

GitHub Actions 개요 및 기본 개념

소프트웨어 개발에서 자동화(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!"

이 코드가 하는 일

  1. 저장소에 코드가 push 또는 pull request될 때 실행됨
  2. GitHub-hosted Runner에서 Ubuntu 최신 버전 환경을 사용
  3. 저장소의 코드를 체크아웃(가져오기)
  4. "Hello, GitHub Actions!" 메시지를 출력하는 Shell 명령어 실행

6. 정리

GitHub Actions의 기본 개념을 정리하면?

  1. GitHub Actions는 CI/CD 자동화를 위한 도구
  2. .github/workflows/ 폴더에 YAML 파일을 생성하면 사용 가능
  3. Workflow → Jobs → Steps 구조로 이루어짐
  4. GitHub-hosted Runner에서 실행 가능
  5. Push 또는 PR을 할 때 자동으로 실행되는 Workflow를 만들 수 있음
This post is licensed under CC BY 4.0 by the author.