본문 바로가기
C.W.K.
Stream
Lesson 10 of 12 · published

왜 GitHub Actions인가

~11 min · github-actions, comparison, tradeoffs

Level 0견습생
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

세상이 Actions를 기본으로 삼게 된 강점

GitHub Actions는 2018년에 나왔고, 3년 안에 대부분의 새 프로젝트에서 기본 CI 자리를 차지했어. 기술적으로 엄청난 천재성이 있어서라기보단, 그냥 실용적이기 때문이야.

  1. 코드 옆에 있다. 워크플로는 .github/workflows/ 경로에 있는 YAML 파일이야. 코드처럼 버전 관리되고, PR에서 리뷰도 받고, 자동으로 저장소 범위에 묶여.
  2. 마켓플레이스. 의존성 캐시, AWS 배포, 도커 이미지 빌드, 슬랙 알림 같은 흔한 작업을 처리할 수 있는 미리 만들어진 액션이 수만 개나 있어. 조합할 수 있는 폭이 장난 아니야.
  3. 오픈소스는 무료. 공개 저장소엔 여유로운 무료 분량이 있고, macOS나 Windows 러너도 무료야. 요즘 오픈소스 프로젝트들이 전부 초록색 빌드 배지를 달고 배포하는 이유가 바로 이거야.
  4. 인증은 하나로. 깃허브 계정만 있으면 CI도 쓸 수 있어. 프로비저닝이나 라이선스, 결제를 따로 할 도구가 필요 없어.
  5. 기본 UI 통합. PR 상태 확인, 환경 배포, 비밀값 관리까지 전부 코드 리뷰하는 바로 그 UI에서 다 해결돼.

알아둬야 할 약점

  • 벤더 종속성은 실재해. 워크플로 YAML과 액션 생태계가 GitHub 전용이야. 다른 곳으로 옮기는 일이 만만치 않아.
  • 마켓플레이스 액션 대부분은 서드파티 코드야. SHA로 고정하고, 중요한 건 꼭 감사하고, 프로덕션에선 latest는 절대 쓰지 마. (비밀값/보안 트랙에서 다뤄.)
  • 아주 무거운 워크로드엔 느려. 64코어 머신이나 퍼시스턴트 캐시가 있는 GPU 러너가 필요하면 보통 러너를 직접 호스팅해.
  • 상태를 유지하는 워크플로는 어색해. 액션은 상태 없는 빌드, 테스트, 배포를 아주 잘해. 오래 돌며 상태를 유지해야 하는 파이프라인(긴 배치 작업)에는 Argo나 Airflow 같은 오케스트레이터가 더 필요해.

Code

워크플로가 저장소에 산다 — 다른 소스 코드처럼·bash
# Where it lives
ls .github/workflows/
# ci.yml  release.yml  nightly.yml  deploy.yml

# It's part of the repo
git log -p .github/workflows/ci.yml
# you see the full review history of every workflow change

# It's reviewable in PRs
git diff main HEAD -- .github/workflows/

External links

Exercise

액션 마켓플레이스를 둘러보면서 앞으로 할 프로젝트에 진짜 쓸 만한 액션 3개를 찾아봐. 각 액션의 소스 저장소를 열어서 누가 관리하는지, 마지막 릴리스가 언제였는지, SHA 고정을 권고하는지 확인해. 이게 도입 전에 꼭 해야 할 감사야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.