나만의공간

Git 16회차. GitHub Actions로 자동화 시작하기 본문

IT/Git

Git 16회차. GitHub Actions로 자동화 시작하기

밥알이 2025. 7. 18. 17:10

🤖 Git 16회차. GitHub Actions로 자동화 시작하기 - Git으로 DevOps의 문을 열다!

코드를 푸시했더니 테스트가 자동으로 실행되고, 사이트가 자동 배포되었다면? 바로 이것이 GitHub Actions의 세계입니다! 이번 회차에서는 GitHub Actions를 이용한 자동화의 시작을 도와드릴게요 😊


🚀 GitHub Actions란?

GitHub Actions는 GitHub에서 제공하는 자동화 도구입니다. 코드 변경 시 자동으로 테스트하거나 빌드, 배포를 할 수 있는 기능이에요.

📌 예를 들어 이런 걸 자동화할 수 있어요

  • ✔️ PR이 올라오면 자동으로 테스트 실행
  • ✔️ main 브랜치에 push하면 웹사이트 배포
  • ✔️ 정기적으로 스크립트 실행 (예: 매일 오전 9시)

즉, 사람이 일일이 하지 않아도 코드 품질과 운영을 자동으로 관리할 수 있어요.


🧱 GitHub Actions의 기본 구조

GitHub Actions는 .github/workflows 폴더 아래에 YAML 파일로 구성됩니다.

.
├── .github
│   └── workflows
│       └── main.yml

이 YAML 파일에는 어떤 이벤트에 어떤 작업을 할지를 정의합니다.

💡 구성 요소

  • name: 워크플로우 이름
  • on: 실행 트리거 (push, pull_request 등)
  • jobs: 수행할 작업 집합
  • steps: 실제 명령어들 (npm install, test 등)

📄 GitHub Actions 예제: Node.js 프로젝트 테스트 자동화

# .github/workflows/node-test.yml
name: Node.js Test

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

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test

이 예시는 main 브랜치에 push 또는 PR이 들어올 때 자동으로 다음을 수행합니다:

  1. 코드를 checkout
  2. Node.js 환경 설정
  3. npm install
  4. npm test

테스트에 실패하면 자동으로 PR이 거절되도록 설정할 수도 있어요 🛡️


📦 GitHub Marketplace에서 Actions 검색하기

반복적인 설정이 귀찮다면, 이미 만들어진 Actions를 Marketplace에서 검색해보세요!

✅ 예시

  • actions/checkout - 코드를 체크아웃
  • actions/setup-node - Node.js 환경 설정
  • peaceiris/actions-gh-pages - GitHub Pages 배포
  • actions/upload-artifact - 빌드 결과 저장

👉 GitHub Actions Marketplace 바로가기


⚙️ 정기 실행 워크플로우 만들기 (cron)

매일 아침 9시에 자동으로 스크립트를 실행하고 싶다면?

on:
  schedule:
    - cron: '0 0 * * *'

이렇게 설정하면 매일 0시(UTC) → 한국 시간 9시에 자동 실행됩니다.


⚠️ GitHub Actions 유의사항

  • ✔️ 퍼블릭 저장소는 무료로 무제한 사용 가능
  • ✔️ 프라이빗 저장소는 요금제에 따라 사용량 제한
  • ✔️ 작업 환경은 Linux, macOS, Windows 중 선택 가능

🧠 실무에서 GitHub Actions 어떻게 쓰나?

  • ✔️ CI(지속적 통합): PR마다 테스트 자동 실행
  • ✔️ CD(지속적 배포): main 푸시 시 서버로 자동 배포
  • ✔️ DevOps 도입: 코드 → 테스트 → 배포까지 자동화

이제는 개발자가 코드를 쓰는 순간부터 GitHub Actions가 알아서 움직이는 시대예요!


📌 오늘의 핵심 요약

  • ✔️ GitHub Actions는 GitHub에서 제공하는 무료 자동화 기능입니다
  • ✔️ 이벤트(on)에 따라 다양한 작업(jobs)을 수행할 수 있어요
  • ✔️ CI/CD의 시작은 GitHub Actions로 충분합니다

지금까지 Git으로 버전 관리만 하셨다면, 이제는 자동화의 세계로 한 걸음 나아가보세요 😊


📎 다음 회차 예고

17회차. Git에서 태그(Tag) 관리 - 버전 릴리스의 핵심

✔️ git tag로 버전 관리하는 방법 ✔️ Annotated vs Lightweight Tag ✔️ GitHub 릴리스와의 연결


Comments