러닝 깃허브 액션 도서 리뷰

Ryan Kim
4 min readJun 23, 2024

--

Github Action으로 시작하는 CI 프로세스

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

한 권으로 CI 프로세스 이해하기

엔지니어링 업무를 정의한다면, “문제가 있고 그것을 해결해 나가는 것”이 엔지니어링이라면, 개발하는 영역은 “해결한 업무 영역을 자동화하고 생산성을 높이는 것”이 개발 업무의 정의라고 나는 이해할 수 있을 것 같다.

이유인즉, 소스코드를 작성해서 실행하는 로직이 기존의 사람의 업무를 대체해서 24/7 중단 없이 실행하기 때문에 기존의 사람이 교대 근무를 하며 수행하던 부분의 자동화가 이뤄지며, 이는 컴퓨터로 충분히 대체가 될 수 있는 영역에 해당한다.

단, 이러한 개발자가 작성한 소스코드가 업무 자동화에 기여하려면, 몇 가지 로직이 더 추가되어야한다.

  • 빠른 오류 감지 및 수정: 개발자가 작성한 코드가 자주 병합되고 테스트되므로, 오류를 조기에 발견하고 해결할 수 있어야함.
  • 일관된 빌드 프로세스: 빌드와 테스트는 프로세스를 정립해서 사람에 의한 실수를 줄여야함.
  • 향상된 협업: 모든 개발자들이 최신 코드를 공유하므로 협업이 원활해지고, 코드 충돌을 최소화할 수 있음.
  • 품질 보증: 지속적인 테스트와 검증을 통해 소프트웨어의 품질을 높일 수 있음.

이러한 프로세스를 우리는 Continuous Integration(연속 통합)라고 부르며, 오늘날 개발 블로그나 컨퍼런스를 보면 CI라는 명칭으로 주로 언급한다.

CI는 개발자들이 소프트웨어 프로젝트에 대해 자주, 그리고 정기적으로 코드를 통합하는 소프트웨어 개발 방법론으로, 각 개발자는 변경 사항을 공유 저장소에 빈번하게 병합하며, 이러한 병합 작업은 자동화된 빌드와 테스트 과정에 의해 검증됩니다.

CI 솔루션에는 주로 아래 5개를 언급하는 것으로 보인다.

  • Github Action
  • Gitlab CI
  • Travis CI
  • Circle CI
  • Jenkins

오늘 소개하는 업무의 영역은 Github Action으로, 나도 회사에서 주로 사용하고 있어 한 번 정리하는 차원에서 글을 쓰게 되었다.

내가 사용해 왔던 주요 Github action 프로세스는 주로 아래 내용들과 같다.

  • Custom Action을 만들어서, 사내 워크 플로우 파이프라인에서 실행되는 저장소들의 workflows 파일에서 호출
  • Docker Image 자동 빌드 (Image Tag는 커밋 해시 값으로 대체)
  • 브랜치 단위 커밋 이벤트 발생했을 때 CI 프로세스 수립
  • Self-hosted Runner 운영

특별히 CI 프로세스에 대한 정의를 충분히 이해하고 사용한 것도 아니었고, Github Action 공식 문서를 충분히 읽고 적용한 것은 아니었지만 이 책을 읽고 나니 코드 통합이라는 관점에서 봤을 때, 저장소에서 발생하는 “커밋 행위” 자체를 이벤트로 본다면, 그 동안 내가 사용한 사례들의 방향성이 잘 사용되었다는 생각을 하게 되었다.

여기에 약간 심화된 버전의 Github action 사용으로 self-hosted runner를 회사 쿠버네티스 환경에 설치해서 사용한 점이다.

self-hosted runner의 사용은 깃헙에서 자체 제공하는 Action 서버만으로 해결이 어려운 컴퓨팅 자원에 대한 니즈나 API 호출이 잦은 작업이 있을 때 주로 사용되며, 내가 수행한 작업은 2가지 모두 해당되어서 자체 action 서버를 구성한 사례에 해당된다.

(즉, 이벤트가 발생해서 작업을 호출하는 것은 Github이, 실제 작업은 사내 서버에서 실행했다고 봐도 된다)

이 책에는 내가 사용한 사례들이 모두 잘 설명이 되어 있고, Github에서도 안내하는 잘 활용하는 케이스들로 보인다.

(사실 잘 생각해보면, Action으로 자동화 프로세스를 작업할 때 Github Action 공식 문서를 하나씩 읽어가면서 구성했기 때문에, 방향성이 잘 맞을 수 밖에 없다.)

단, 이 글을 읽는 사람이 이 책 구매를 고민하는 사람이라면

  • 한국어로 작성 되어 있고
  • 참고서처럼 볼 수 있는

2가지 장점 때문에 구매를 고려해 볼 수 있을 것이다.

무엇보다 Github Action은 기본 기능이 갑자기 새롭게 뒤바뀌거나 version 2가 출시되면서 기존 기능에 지대한 영향을 줄 수 있는 부류의 서비스는 아니기 때문에 한 번 익혀두면 지속적으로 사용할 수 있을 것이라 믿는다.

Ryan

--

--