[Github Actions] 깃허브 액션이란? (feat. CI/CD)

예름·2025년 3월 5일

Github Actions

목록 보기
1/4
post-thumbnail

📍 깃허브 액션이란 무엇일까?

개발을 하다 보면 반복적인 작업이 많다. 코드 변경 후 빌드하고, 테스트를 실행하고, 배포하는 과정이 매번 수동으로 이루어진다면 시간과 비용이 낭비될 수밖에 없다. 이를 해결하기 위해 등장한 것이 CI/CD (Continuous Integration / Continuous Deployment) 이며 GitHub에서는 이를 지원하는 GitHub Actions를 제공한다.

🔎 깃허브 액션이란?

GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼이다.

특정 이벤트(예: 코드 푸시, PR 생성, 이슈 등록 등)가 발생하면 미리 정의한 작업(빌드, 테스트, 배포 등)을 자동으로 실행할 수 있다.

쉽게 말해 코드를 GitHub에 푸시하면 자동으로 테스트를 실행하고, 문제가 없다면 배포까지 알아서 처리하는 강력한 기능을 제공한다. GitHub 저장소 내에서 바로 사용할 수 있어 별도의 CI/CD 도구를 설치할 필요도 없다.

❓ CI/CD는 뭔데?

CI/CD는 소프트웨어 개발을 더 빠르고 안전하게 하기 위한 자동화 프로세스라고 할 수 있다.

CI (Continuous Integration, 지속적 통합)

개발자가 새로운 코드를 추가할 때마다, 자동으로 빌드하고, 테스트를 실행하는 과정이다.

예를 들어, 개발자가 “로그인 기능”을 추가했다고 하면,

  1. 코드를 GitHub에 올리면
  2. 자동으로 코드가 문제없는지 테스트 실행
  3. 테스트를 통과하면 다른 개발자와 합칠 준비 완료!

CD (Continuous Deployment/Delivery, 지속적 배포/전달)

CI가 끝난 코드가 자동으로 배포(사용자에게 제공)되는 과정이다.

예를 들어, 테스트까지 끝난 코드가

  • Continuous Deployment(지속적 배포): 자동으로 서버에 배포됨 (완전 자동, 승인 없이 자동 배포)
  • Continuous Delivery(지속적 전달): 배포할 준비가 완료되었고, 클릭 한 번으로 배포 가능 (반자동, 사람의 개입이 필요)

➡️ 쉽게 말하면?
✅ CI = “코드 바꾸면 자동으로 검사!”
✅ CD = “테스트 통과하면 자동으로 배포!”

CI/CD를 활용하면 버그를 미리 잡고, 배포를 더 빠르게 할 수 있어 개발 생산성이 올라간다.

🔎 깃허브 액션의 필요성

CI/CD는 단순한 자동화 도구가 아니라 코드 품질을 유지하고 개발 프로세스를 효율적으로 만들기 위해 필수적인 요소다. GitHub Actions를 사용하면 다음과 같은 장점이 있다.

  • 자동화된 빌드 및 테스트: 코드 변경이 있을 때마다 테스트를 실행하여 코드 안정성을 유지할 수 있다.
  • 배포 자동화: 코드가 특정 브랜치에 머지되면 AWS, Vercel, GitHub Pages 등으로 자동 배포할 수 있다.
  • 코드 품질 향상: ESLint, Prettier 같은 코드 스타일 검사 도구를 활용하여 일관된 코드 스타일을 유지할 수 있다.
  • 보안 강화: 취약점 스캐너와 연동해 보안 점검을 자동으로 수행할 수 있다.
  • GitHub과의 완벽한 통합: GitHub 저장소 안에서 바로 설정할 수 있어 추가적인 도구 설치 없이 빠르게 CI/CD를 적용할 수 있다.

🔎 깃허브 액션 핵심 용어 정리

GitHub Actions를 사용하려면 몇 가지 중요한 개념을 이해해야 한다.

Workflow (워크플로우)

하나의 자동화 프로세스를 정의하는 파일이다. .github/workflows/ 디렉토리에 YAML 형식으로 저장된다.

Event (이벤트)

워크플로우를 실행하는 트리거(Trigger)이다. 예를 들어, push, pull_request, schedule 같은 이벤트가 있다.

Job (잡)

워크플로우에서 실행되는 개별 작업 단위다. 여러 개의 Job이 병렬 또는 순차적으로 실행될 수 있다.

Step (스텝)

Job 내부에서 실행되는 개별 명령어 또는 액션이다.

Runner (러너)

워크플로우를 실행하는 환경이다. GitHub에서 제공하는 ubuntu-latest, windows-latest 등의 환경을 사용하거나 직접 서버를 세팅할 수도 있다.

🔎 깃허브 액션 주요 기능

GitHub Actions를 활용하면 다양한 자동화 작업을 수행할 수 있다.

빌드 및 테스트 자동화

  • 새로운 코드가 푸시될 때마다 자동으로 테스트 실행
  • Jest, PyTest, JUnit 같은 테스트 프레임워크와 연동 가능

배포 자동화

  • AWS S3, Netlify, Vercel, GitHub Pages와 연동하여 자동 배포
  • Docker Hub에 컨테이너 이미지를 자동으로 빌드 및 푸시 가능

코드 스타일 및 품질 검사

  • ESLint, Prettier를 활용하여 코드 스타일 유지
  • SonarQube와 연동하여 코드 품질 분석

보안 검사 및 취약점 탐지

  • Dependabot을 사용하여 의존성 취약점 자동 점검
  • Snyk과 같은 도구와 연동하여 보안 점검 수행

⚠️ 깃허브 액션 사용 시 주의할 점

GitHub Actions를 사용할 때 몇 가지 주의해야 할 사항이 있다.

  • 보안 토큰 관리: secrets.GITHUB_TOKEN을 활용하여 보안 정보를 안전하게 관리해야 한다.
  • Workflow 실행 횟수 제한: GitHub 무료 요금제에서는 Actions 실행 시간이 제한된다.
  • Self-hosted Runner 사용 시 보안 설정 필요: 외부 서버를 Runner로 사용할 경우 접근 권한을 신중하게 관리해야 한다.
  • 장기 실행 Job의 타임아웃 문제: GitHub Actions의 기본 실행 시간은 6시간이므로 장기 실행 작업은 다른 방안을 고려해야 한다.

참고문헌
🔗 깃허브 액션 공식 문서

profile
안정적인 쳇바퀴를 돌리는 삶

0개의 댓글