메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

러닝 깃허브 액션

깃허브로 시작하는 지속적 통합 및 배포 자동화

한빛미디어

번역서

판매중

  • 저자 : 브렌트 래스터
  • 번역 : 정의형 , 정한결
  • 출간 : 2024-05-20
  • 페이지 : 420 쪽
  • ISBN : 9791169212458
  • 물류코드 :11245
  • 초급 초중급 중급 중고급 고급
4.8점 (18명)
좋아요 : 7

개발 생산성을 극대화하는 깃허브 액션 종합 가이드

 

깃허브 액션을 활용해 개발 시간을 단축하고 협업 효율을 높이세요! 오픈 소스 작가이자 트레이너, DevOps 디렉터인 저자가 완벽한 깃허브 사용법을 설명합니다. 액션과 워크플로가 무엇인지, 이를 프로세스에 통합해 개발 과정을 단순화, 표준화, 자동화하는 방법은 무엇인지 알아봅시다. 깃허브 액션으로 코드 유효성 검사부터 복잡한 배포 파이프라인까지 구현하세요. CI/CD를 처음 접하는 분부터 깃허브 액션 사용을 고민했던 개발자까지 프로젝트에 바로 적용할 수 있는 실무 중심의 내용을 담았습니다. 이제 깃허브 액션으로 개발 프로세스를 혁신하세요!

 

브렌트 래스터 저자

브렌트 래스터

브렌트 래스터는 SAS의 R&D 데브옵스 디렉터입니다. 그는 전 세계적인 오픈소스 기술 트레이너이자 작가, 연사입니다. 또한, 기술의 이해와 사용을 돕는 회사인 유한법인 테크 스킬 트랜스포메이션의 창립자입니다. 소프트웨어 개발 및 관리자로 활동하는 내내 브렌트는 기술 및 리더십 스킬을 배우고 익히며 남들과 공유하는 데 시간을 할애했습니다. 특정 주제나 기술에 대한 관심을 넘어, 다른 사람에게 필요한 지식을 제공하며 얻는 고양감에서 힘을 얻습니다.

정의형 역자

정의형

LG CNS에서 빅데이터 플랫폼 아키텍트로 차세대 데이터 플랫폼 프로젝트를 진행하고 있습니다. 다양한 데이터관련 오픈소스와 AI 기술에 관심이 많으며 여러 기술을 공부하기 좋아합니다. 또한 기술을 이해하기 쉽게 전달하는 교육에 관심이 많습니다.

정한결 역자

정한결

개발자이자 교육자, 정보유통업자입니다. 서울대학교에서 인류학을, 국립방송통신대학교에서 컴퓨터과학과 통계/데이터과학을 전공했습니다. 다방면의 지식 공유를 통해 AI 생태계의 성장 촉진에 기여했으며, 프로덕트 지향적 AI 엔지니어 모임을 운영하고 있습니다. 계속 배우는 사람으로서 더 잘 학습한 AI를 만들고, 다시 그 AI가 사람의 성장을 돕는 순환을 만들고자 합니다.

PART 1 깃허브 액션의 기초

 

CHAPTER 1 기본 사항
_1.1 깃허브 액션
__1.1.1 자동화 플랫폼
__1.1.2 프레임워크
_1.2 깃허브 액션의 사용 사례
__1.2.1 스타터 워크플로
__1.2.2 액션 마켓플레이스
_1.3 이용 요금
__1.3.1 무료 모델
__1.3.2 유료 모델
_1.4 깃허브 액션 이전 체크리스트
__1.4.1 깃허브 사용량
__1.4.2 공개 액션
__1.4.3 자체 제작 액션
__1.4.4 아티팩트 관리
__1.4.5 액션 관리
_1.5 결론

 

CHAPTER 2 액션의 작동 원리
_2.1 개요
_2.2 워크플로 발동
_2.3 컴포넌트
__2.3.1 스텝
__2.3.2 러너
__2.3.3 잡
__2.3.4 워크플로
_2.4 워크플로 실행
_2.5 결론

 

CHAPTER 3 잡 구현
_3.1 액션의 구조
_3.2 액션과의 상호작용
_3.3 액션 사용법
_3.4 공개 액션과 마켓플레이스
_3.5 결론

 

CHAPTER 4 워크플로 사용법
_4.1 리포지터리에서 만드는 워크플로 생성
_4.2 워크플로 커밋
_4.3 VS 코드용 깃허브 액션 확장 기능 사용
_4.4 결론

 

CHAPTER 5 러너
_5.1 깃허브 호스팅 러너
__5.1.1 러너 이미지 내 지원 소프트웨어
__5.1.2 러너에 소프트웨어 추가
_5.2 자체 호스팅 러너
__5.2.1 자체 호스팅 러너 시스템의 요구 사항
__5.2.2 자체 호스팅 러너의 제한 사항
__5.2.3 자체 호스팅 러너 보안 고려 사항
__5.2.4 자체 호스팅 러너 설정
__5.2.5 자체 호스팅 러너 사용
__5.2.6 자체 호스팅 러너와 레이블 사용
__5.2.7 자체 호스팅 러너 트러블슈팅
__5.2.8 자체 호스팅 러너 제거
_5.3 자체 호스팅된 러너 오토스케일링
_5.4 저스트 인 타임 러너
_5.5 결론

 

PART 2 깃허브 액션의 구성 요소

 

CHAPTER 6 워크플로 환경 관리
_6.1 워크플로 이름과 워크플로 실행 이름
_6.2 컨텍스트
_6.3 환경 변수
__6.3.1 기본 환경 변수
_6.4 비밀 변수 및 구성 변수
_6.5 워크플로 권한 관리
_6.6 배포 환경
_6.7 결론

 

CHAPTER 7 워크플로에서의 데이터 관리
_7.1 워크플로의 입출력 사용
__7.1.1 워크플로의 입력 정의 및 참조
__7.1.2 스텝에서 출력 확인
__7.1.3 잡의 출력 확인
__7.1.4 스텝에서 캡처하는 액션의 출력
_7.2 아티팩트 정의
_7.3 아티팩트 업로드 및 다운로드
__7.3.1 매개변수 추가
_7.4 깃허브 액션에서 캐시 사용
__7.4.1 명시적 캐시 액션 사용
__7.4.2 캐시 모니터링
__7.4.3 설정 액션에 캐시 활성화
_7.5 결론

 

CHAPTER 8 워크플로 실행 관리
_8.1 고급 변경 사항 트리거
__8.1.1 활동 유형에 따른 트리거
__8.1.2 필터를 활용한 트리거 구체화
_8.2 변경 없는 워크플로 트리거
_8.3 동시성 처리
_8.4 매트릭스로 워크플로 실행
_8.5 워크플로 전용 함수
__8.5.1 조건부 및 상태 함수
_8.6 결론

 

PART 3 보안과 모니터링

 

CHAPTER 9 액션과 보안
_9.1 설정을 통한 보안
__9.1.1 풀 리퀘스트에서 워크플로 실행 관리
__9.1.2 워크플로 권한 허가
__9.1.3 CODEOWNERS 파일
__9.1.4 보호된 태그
__9.1.5 보호된 브랜치
__9.1.6 리포지터리 규칙
_9.2 설계를 통한 보안
__9.2.1 비밀 변수
__9.2.2 비밀 변수 보호
__9.2.3 토큰
__9.2.4 신뢰할 수 없는 입력 처리
__9.2.5 종속성 보안
_9.3 모니터링을 통한 보안
__9.3.1 스캔
__9.3.2 풀 리퀘스트의 안전한 처리
__9.3.3 풀 리퀘스트 내 워크플로의 취약점
__9.3.4 풀 리퀘스트 내 소스 코드의 취약점
__9.3.5 풀 리퀘스트 유효성 검사 스크립트 추가
__9.3.6 안전한 풀 리퀘스트 처리
_9.4 결론

 

CHAPTER 10 모니터링, 로깅 및 디버깅
_10.1 가시성 향상
__10.1.1 고수준에서의 상태 이해
__10.1.2 워크플로용 상태 배지
_10.2 이전 버전의 상태 작업
__10.2.1 워크플로 버전을 실행에 연결
__10.2.2 워크플로에서 잡 재실행
_10.3 워크플로 디버깅
__10.3.1 스텝별 디버그 로깅
__10.3.2 러너 환경 디버깅
__10.3.3 디버깅 활성화
_10.4 로깅 확장 및 커스터마이징
__10.4.1 로그에 나만의 메시지 추가
__10.4.2 추가적인 로그 커스터마이징
__10.4.3 사용자 맞춤형 잡 요약
_10.5 결론

 

PART 4 심화 주제

 

CHAPTER 11 커스텀 액션
_11.1 액션 구조 해부
_11.2 액션 유형
__11.2.1 복합 액션
__11.2.2 도커 컨테이너 액션
__11.2.3 자바스크립트 액션
_11.3 액션 생성 마무리
_11.4 깃허브 마켓플레이스에 액션 게시
__11.4.1 마켓플레이스에서 액션 업데이트
__11.4.2 마켓플레이스에서 액션 제거
_11.5 액션 툴킷
__11.5.1 툴킷에서 워크플로 명령어 사용
_11.6 로컬 액션
_11.7 결론

 

CHAPTER 12 고급 워크플로
_12.1 나만의 스타터 워크플로
__12.1.1 스타터 워크플로 영역
__12.1.2 스타터 워크플로 파일
__12.1.3 보조적 조각 추가
__12.1.4 새 스타터 워크플로 사용
_12.2 재사용 가능한 워크플로
__12.2.1 입력 및 비밀 변수
__12.2.2 출력
__12.2.3 제한 사항
_12.3 필수 워크플로
__12.3.1 제약 조건
__12.3.2 예시
__12.3.3 실행
_12.4 결론

 

CHAPTER 13 고급 워크플로 기술
_13.1 워크플로에서 깃허브 활용
__13.1.1 깃허브 CLI 사용
__13.1.2 스크립트
__13.1.3 깃허브 API 호출
_13.2 매트릭스를 활용한 잡 자동 생성
__13.2.1 1차원 매트릭스
__13.2.2 다차원 매트릭스
__13.2.3 추가 값 포함
__13.2.4 값 제외
__13.2.5 실패 사례 처리
__13.2.6 잡 동시성 최댓값 정의
_13.3 워크플로에서 컨테이너 사용
__13.3.1 컨테이너를 잡 실행 환경으로 사용
__13.3.2 스텝 수준에서 컨테이너 사용
__13.3.3 잡에서 컨테이너를 서비스로 실행
_13.4 결론

 

CHAPTER 14 깃허브 액션으로 마이그레이션
_14.1 준비
__14.1.1 소스 코드
__14.1.2 자동화
__14.1.3 인프라
__14.1.4 사용자
_14.2 애져 파이프라인
_14.3 CircleCI
_14.4 깃랩 CI/CD
_14.5 젠킨스
_14.6 트래비스 CI
_14.7 깃허브 액션 임포터
__14.7.1 인증
__14.7.2 계획
__14.7.3 빌드 스텝 관련 사항
__14.7.4 수동으로 할 일
__14.7.5 파일 매니페스트
__14.7.6 예측
__14.7.7 드라이 런 수행
__14.7.8 임포터를 위한 커스텀 트랜스포머
__14.7.9 실제 마이그레이션
_14.8 결론


찾아보기

프로젝트 자동화의 시작점,
깃허브 액션
 

깃허브 액션은 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼이다. 깃허브를 많이 사용하는 개발자라면 다른 애플리케이션을 사용하지 않고도 깃허브 액션을 사용해 자동화를 구현할 수 있다. 이 도서는 기초적인 자동화 방법부터 보안, 심화 주제까지 차례로 소개한다.
 

1부. 깃허브 액션의 기초
깃허브 액션의 정의와 기본적인 작동 방식, 프레임워크의 핵심 요소, 전체적인 흐름을 소개한다. 깃허브 액션에 입문하는 독자가 이용하는 데 어려움이 없을 정도로 확고한 기반을 다진다. 
 

2부. 깃허브 액션의 구성 요소 
깃허브 액션에서 설정, 데이터 공유 및 저장, 워크플로 실행 트리거 및 제어에 필요한 각종 구성 요소를 배우며 액션에 대한 지식을 확장한다.
 

3부. 보안과 모니터링
깃허브 액션을 사용하는 과정에 필요한 보안을 설정, 설계, 모니터링이라는 세 가지 관점에서 살펴본다. 로깅에 사용하는 다양한 옵션과 문제 디버깅에 사용하는 기술을 설명해 모니터링 자체를 자세히 살펴본다. 
 

4부. 심화 주제
사용자 지정 액션 제작, 스타터 워크플로 및 재사용 가능한 워크플로 제작, 깃허브 CLI 및 API 사용, 워크플로에서 매트릭스 전략 및 컨테이너 사용 등 깃허브 액션을 사용하며 알아두면 좋을 다양한 주제를 소개한다. 또한, 마지막 장에서는 다른 자동화 툴에서 깃허브 액션으로 마이그레이션하는 방법을 살펴본다.
 

대상 독자

  • 깃허브를 처음 사용하며 자동화가 어떻게 작동하는지 알고 싶은 분
  • 깃허브 액션으로 실제로 워크플로를 구성하는 코드와 구문을 구현하는 데 도움을 원하는 분
  • CI/CD 및 자동화에 깃허브 액션 도입을 고려하는 목적으로 이해하고 평가하려는 분
  • 현재 사용하는 CI/CD 설루션을 깃허브 액션으로 마이그레이션하려는 분

 

배우는 내용

  • 도커, 자바스크립트, 셸을 사용한 커스텀 액션 작성
  • 워크플로에 발생한 문제 해결 및 디버깅 방법
  • 깃허브 액션으로 워크플로를 안전하게 구현하는 법
  • 다른 CI/CD 플랫폼에서 깃허브 액션으로 마이그레이션하는 법

 

저자의 말
깃허브 액션은 깃허브를 떼 놓고 정의하거나 분류하기 어렵습니다. 깃허브 모델을 논리적으로 한층 더 확장한 것이라고 말하는 편이 적확할 것 같습니다. 이 책은 깃허브의 원리를 안내하는 책은 아닙니다만, 깃허브 액션이 깃허브 생태계 전체적으로 함께 작동하는 방식을 깃허브를 통한 자동화 경험 수준과 관계없이 이해하기 쉽게 쓰려고 노력했습니다.

브렌트 래스터

깃허브 액션

깃허브 액션은 CI/CD, 기타 여러 워크 플로우를 깃허브 안에서 가능케 하는 툴이다.
따라서 레포지토리 안에서 배포도 하고 테스트 코드도 실행하고 Lint 체크도 하는 것이 가능하다. 별도의 툴이 필요하지 않다는 점이 정말 큰 이점이라고 생각한다.
과거 국비지원 수업에서 팀원이 젠킨스로 CI/CD를 하겠다고 하여 새로운 것을 배우고 적용하는 오랜 시간이 필요했던 경험이 있는데. 깃허브 액션은 정말 배우기 쉬운 편인 것 같아서 시간을 절약할 수 있었겠구나 라는 생각을 했다.

 

책을 읽게 된 이유

배포는 Vercel로 자연스럽게 자동화가 되고 있었고 테스트 코드, Lint 체크를 PR할 때 자동화하기 위해서 사용했었다.
정말 너무 편했던 것 같다. 어떤 방식으로 진행하겠다는 코드 작성도 쉬웠고 마켓 플레이스에 이미 좋은 워크플로우를 만들어 올려놓은 덕분에 정말 수월하게 작업했다.
전체적인 구조를 이해하지 못해서 아쉬웠던 점이 있다. 조금 더 단위를 잘 만들어서 워크 플로우를 중복 작업 없이 하고 싶었는데 그럴 시간도 지식도 없어서 아쉬웠다. 이 아쉬운 점을 뒤로 하고 방학을 맞이하여 공부를 한다면 큰 장점이 된다고 생각했다. 이 책을 잘 씹어먹고 공식문서도 씹어먹으면 깃허브 프로필에 '기술 스택 : 깃헙 액션'을 넣을 수 있지 않을까 라는 소소한 망상도 하게 됐다.

 

간략한 코드 작성 방식

깃허브 액션의 워크플로는 YAML 파일로 작성한다.
PR이나 PUSH같은 event가 발생하면 작업(job)을 돌리게 된다.
각각의 단계를 step이라고 하고 재사용할 수 있는 코드 단위를 actions라고 한다.
추가로 작업이 실행될 가상 머신도 지정하게 된다.
job, action, 그리고 환경변수 정도만 지정하면 된다.

(조만간 책 공부를 정리해서 올려도 좋겠구나 라고 생각한다.)

 

깃허브 액션만의 장점

  1. Jenkins, Circle, Travis같은 외부 툴을 사용하지 않고 CI/CD를 사용할 수 있다.
  2. 깃허브 아이디만 있어도 사용할 수 있다. (학생은 완전 무료이고 다른 계정은 일정 분량까지는 무료로 사용할 수 있다고 알고 있다.)
  3. 마켓플레이스가 잘 활성화되어 있어서 어지간한 워크플로우는 이미 누군가가 작성해뒀다.

 

CI/CD가 이젠 필수가 되어버린 세상

분명 국비지원 수업을 들었을 때에는 CI/CD를 들으면 우왕!같은 반응, 대단히 무서운 무언가 정도로 느꼈다. 이제 2년여의 시간이 지났다. 그 때에는 배포만 해도 오케이 정도 였던 것 같은데 CI/CD가 이젠 당연한 느낌이다. (정확하게는 CD가 당연한 느낌)
작년에 정통파 멘토님의 좋은 영향으로 코드를 PR하면 Lint 체크를 하고, 유닛 테스트, E2E 테스트를 통과하도록 하는 작업을 해봤다. (테스트코드는 거의 없었고 워크플로우를 시도해보는 정도였다.)
정말정말 너무 좋은 경험이라고 느꼈고 나중에 가서야 이게 CI의 한 종류이지 않을까? 라는 생각을 했다.

깃허브는 개발자라면 정말 많은 사람들이 애용하는 사이트이다. 개발 작업대이자 포트폴리오인데, 깃허브 액션을 잘 사용한다면 내 작업이 더 짜임새있게 될 것이고, 누군가가 본다면 그게 내 포트폴리오 중 하나인 것 같다.

오늘은 브렌트 래스터의 [러닝 깃허브 액션]이라는 책에 대한 리뷰를 작성해보려고 합니다.

깃허브 액션에 대해 깊이 있는 공부를 하고 싶어 하시는 분들께 아주 유용한 책이 될 것 같아 소개해드릴게요.

[BOOK] 러닝 깃허브 액션 - 브렌트 래스터 지음 / 정의형, 정한결 옮김

 

 

부제: "깃허브로 시작하는 지속적 통합 및 배포 자동화"

 

GitHub는 Git을 기반으로 하는 버전 관리 시스템(VCS; Version Control System)을 클라우드 기반으로 서비스합니다. GitHub Action은 GitHub 서비스에서 CI/CD를 담당합니다. 새롭게 코드가 변경되었을 때 자동화된 빌드, 테스트, 실행이 가능하고, 서비스 환경으로 배포가 가능합니다. CI/CD 도구는 다양하지만 GitHub의 기능과 연계된 다양한 자동화 기능을 활용할 수 있는 점 GitHub Action의 강점입니다.

 

'러닝 깃허브 액션'에서는 코드가 커밋된 시점부터 배포까지의 과정에 필요한 모든 것을 설명합니다. 동작 원리에 대한 설명으로 시작해서 보안, 모니터링에 관련된 고급 기술까지 설명합니다. 마켓플레이스의 액션들을 활용하는 방법, 다른 CI/CD 플랫폼에서 GitHub Action으로 변경하는 방법도 알려줍니다. GitHub Action을 사용하여 CI/CD를 구축하려는 분들에게 도움이 될 정보가 책 한 권에 담겨있습니다. 

 

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

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

 

"Learning GitHub Actions"는 개발 업무의 자동화와 생산성을 높이는 방법을 소개하며, CI의 중요성과 활용법을 자세히 설명합니다. 다양한 GitHub Actions 사용 사례와 실습 예제로, 자동화 프로세스를 쉽게 이해하고 적용할 수 있게 해줍니다. 한국어로 작성된 참고서로, 초보자부터 고급 사용자까지 모두에게 유용합니다.

'인간은 망각의 동물이다또한 인간은 같은 실수를 반복하는 동물이다.'

 

개발을 하다 보면 사소하지만 익숙한 것들에 대해서 자주 그것도 반복적으로 실수를 하는 경우가 있다가령 변수 이름을 일괄 변경해야 했음에도 이를 망각한다든가테스트 절차나 혹은 빌드 과정에서 특정 값들을 넣어주거나 빼줘야 함에도 이를 까먹고 같은 실수를 반복하거나.. ..

 

이런 자잘한 실수가 쌓이다 보면 은연중나도 모르게 몸이 경직되는 상황? (긴장으로 인하여)에 처하게 된다.

 

왜냐하면 인간 스스로가 이러한 자잘한 실수를 용납하지 못하는 기질을 가지고 있기 때문이다. (개발자라면 더더욱)

하지만 인간은 망각의 동물이며같은 실수를 반복하고생각보다 미완의 존재임을 인정하게 된다면 이러한 문제를 보다 쉽게 극복할 수 있다.

 

사소한 것들을 자동화함으로써 위의 문제를 극복해 내는 것이다.

 

예전에는 이러한 과정을 jenkins를 비롯한 다양한 툴들을 통해 보완해왔다면이제는 git에서 제공하는 기능인 'git action'만으로도 어느 정도 혹은 그 이상의 기능들을 자동화할 수 있게 되었다.

 

【책의 구성】 "러닝 깃허브 액션"의 구성은?

 

러닝 깃허브 액션은 총 4개의 파트와 14개의 챕터로 구성되어 있으며파트는 '기초', '액션의 구성 요소', '보안과 모니터링', '심화 주제'로 구성되어 있다

 

각 파트는 해당 파트의 주제에 알맞은 챕터들로 구성되어 있고각 챕터의 내용들 하나하나가 모두 깃 액션을 이해하는 데에 있어서 반드시 필요한 요소이므로 모든 챕터를 순차적으로 읽어가시며 학습하시길 권장한다.

 

금일 블로그에서는 1챕터의 내용 위주로 리뷰를 진행할 예정이며자세한 내용은 책을 참고하면 된다.

 


 

챕터 1 : 기본 사항

이 장에서는 깃허브 액션의 기초적인 원리와 깃허브 액션의 도입 배경에 대해서 설명하고 있다.

 

많은 분들이 해당 기술의 도입 배경에 대해서는 간과한 채 바로 기술 습득에만 몰두하는 경향이 있는데될 수 있으면 기술이 발생한 배경과 도입 이유에 대해서도 알아두면 좋다왜냐하면 해당 기술이 기존의 어떤 부분의 미흡한 부분을 완화하였고 새로운 장점이 무엇이 있는지를 잘 알아두면 추후 비슷한 기능들이 등장하였을 때 이를 보다 체계적으로 분석하고 도입할 수 있기 때문이다.

 

이 장에서의 가장 핵심은 '이용 요금부분인데깃헙 액션을 무료로 사용하기 위해서는 (runner github에서 제공하는 것을 사용하기 위해서는반드시 보인의 프로젝트를 public으로 설정해야 함을 명심하도록 하자.

 


 

챕터 2 : 액션의 작동 원리

 

모든 기술의 가장 중요한 방법은 그 기능이 어떻게 작동되는지 원리를 파악하는 것이라 할 수 있다해당 챕터에서는 깃헙을 이루고 있는 스텝과 러너워크플로에 대해서 자세히 설명하고 있다.

 

'러너'는 깃헙 액션을 수행하는 물리/가상 서버 즉 컨테이너를 의미하며

 

''은 깃 헙 액션이 수행해야 할 테스크를 의미한다.

 

'스텝은상기 ''에서 수행할 작은 단위의 테스크를 의미하고

 

'워크플로'는 위의 ''들을 어떤 조건에서 어떻게 수행할지를 정의해둔 명세라고 생각하면 된다.

 


 

챕터 4 : 워크플로 사용법

 

워크플로의 사용법은 간단하다

 

첫 번째로 본인이 원하는 workflow를 본인 repo '/.github/workflows' 해당 위치에 넣어둔다.

 

( https://github.com/actions 상기 홈페이지에 접속하여 자동화하고자 하는 내용의 workflow를 잘 찾아서 본인 repo에 카피하거나 아니면 직접 git action workflow를 구성하여(11장 내용상기 폴더 위치에 worfklows file을 넣어두면 된다.)

두 번째로 worklfow에 명시해둔 trigger 정책에 따라서 workflow를 트리거랑 하면 된다

 

그 후마지막으로 trigger git action이 잘 수해 되었는지 확인하면 된다.

 

【 러닝 깃허브 액션을 읽고 나서 】

 

근래 회사에서 개발하고 있는 신규 플랫폼에서는 이번 리뷰에서 다룬 '깃허브 액션'을 적극 사용하고 있다이를 통해 docker image를 자동으로 docker repo에 업로드하거나아니면 lib를 공용 maven에 자동으로 업로드하거나, sonarqube와 연동하여 dirty code 분석이나 혹은 test code code coverage가 얼마나 되는지를 손쉽게 파악하게 되었고무엇보다 위 과정이 자동화되었기 때문에 한결 마음 편하게 비즈니스 로직 구현에만 집중할 수 있게 되었다.

 

옛말에 바퀴가 있는데구태여 바퀴를 다시 만들고 정의할 필요가 없다고 하였다시대에 따라좋은 기술이 나오면 마다할 이유가 없다는 것이다.

 

더욱이 git의 기능을 자동화하기 위해 git 외의 툴에서 위의 내용들을 자동화 해오던 참에, git 자체에서 위와 같은 자동화 툴을 제공해 준다고 하였으니 더더욱 마다할 이유가 없게 된 것이다.

 

어찌 보면 참 애매할 수 있다신규 기능이 마냥 다 좋은 것이라 할 수도 없고이를 도입한다고 하여 생산성이 반드시 향상된다고 보장할 수도 없기 때문이다.

 

다만특정 기능을 이용하던 중에 해당 회사에서 이와 관련된 지원툴을 출시하였다면 필시 상호 호환성 만큼은 철저히 검증하였을 가능성이 크다.

 

따라서 기회가 된다면 깃 액션을 꼭 한번 적용해 보시길 권장한다.

 

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



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

 

여러 프로젝트를 경험하면서 어떤 시스템을 구축하는 것 또한 중요하지만, 구축 후에 시스템을 유지보수하고, 운영해 나가는 게 더 중요하다는 것을 뼈저리게 느끼게 되죠. 아마 현업에 있는 모든 분이 공감하실 텐데요.
특히 코드의 변경이 있는 경우 문서관리나 CI/CD 쪽은 여간 복잡하고 귀찮은 일이 아니어서 지금까지 많은 툴과 방법론들이 개발되어 온 것으로 알고 있습니다. 여전히 발전할 가능성이 아주 많은 분야인 듯합니다.
그러나 깃헙의 액션 기능이 생기면서 그래도 훨씬 더 편리하게 CI/CD를 진행할 수 있을 것 같습니다. 솔직히 Github에 있던 정체 모를 action 아이콘에 대해 궁금하긴 했었지만 깊이 공부해 볼 생각이 없었거든요.
그런데 이렇게 친절하게 책으로 나온 것을 보고 반가운 마음에 읽어보았는데 이렇게 가치가 큰 기술일지 몰랐습니다. 인프라 관리 차원에서는 네모난 바퀴를 둥근 바퀴로 바꿔주는 기술이지 않을까 싶습니다. 그동안 코드 관리와 오픈 소스로 이미 익숙한 깃허브에 CI/CD를 바로 사용할 수 있게 되었으니까요. 젠킨스, ArgoCD 등 제3의 제품을 엮어서 빌드, 테스트, 배포를 진행할 필요가 없게 된 거죠.
게다가 자세히 살펴보면 워크플로우, 잡, 액션으로 구성되는 컴포넌트들이 꽤 직관적이고 합리적이라 유지하기도 좋은 것 같습니다. 게다가 현재 운영되어 왔던 깃허브 생태계를 확장하는 개념이라 자연스럽고 유기적으로 받아들이고 연동될 수 있다는 점이 큰 장점으로 다가왔습니다.
저는 인프라 관련 직무는 아니지만 업무 내 PoC나 개인 토이 프로젝트에서 배포와 유지 관리에 드는 시간과 에너지가 확 줄어들 것 같아서 적극 활용해 볼 계획입니다.
위에서 말씀드린 내용은 깃헙 액션이 왜 좋은 기술인지를 알리고자 하는 내용이었다면 이제 책 얘기를 해보려 합니다. 크게 4개의 부로 구성되어 있습니다.

 

1부: 깃허브 액션의 기초
2부: 깃허브 액션의 구성 요소
3부: 보안과 모니터링
4부: 심화 주제


책을 따라가면서 읽다 보면 자연스럽게 이해가 되는 점이 흥미로웠습니다. 특히 1부 기초 파트에서는 생소한 용어를 익히게 하기 위해 복습을 시키는 듯 내용을 반복해서 기재한 점이 오히려 더 좋았습니다. 독자로서 인지적 부하 없이 정독만 하면 자동으로 이해가 되는 경험이었어요.
저는 책에서 말하고자 하는 깃허브 액션에 대한 내용도 물론 좋았지만, 책의 진행 방식에 대해서도 감명받았습니다. 앞으로 새로운 기술이나 툴을 배울 때 이런 흐름대로 가이드가 있다면 더할 나위 없이 좋겠다는 생각까지 들었어요. 또한 업무에서 기술 가이드를 쓸 때도 참고할 수 있겠다고 생각했습니다.

다시 내용으로 돌아오면 책 한 권에 깃허브 액션의 모든 것이 잘 담겨 있다고 느껴질 정도로 구성이 잘 짜여 있습니다. 용어에 대한 설명부터 커스텀 워크플로우를 제작하는 심화 주제까지 다루고 있는데요. CI/CD를 처음 접하는 독자들도 즐겁게 읽고 이해할 수 있을 만큼 쉽고 친절하게 적혀있습니다.
책을 읽는 동안 제 개발 프로세스가 업그레이드될 것이 기대되어 설레고 즐거운 마음으로 읽었습니다. 이제 바로 실무에 적용하여 즐거움을 누리려 합니다. 시스템의 코드 유효성 검사부터 배포 파이프라인까지 경험했던, 혹은 경험하고 싶은 모든 개발자분에게 추천합니다.

"러닝 깃허브 액션"은 소프트웨어 개발의 자동화를 위해 깃허브 액션을 효과적으로 활용하는 방법을 체계적으로 안내하는 책이다. 이 책은 깃허브 액션에 대한 기초부터 고급 사용법까지 포괄적으로 다루며, 특히 지속적 통합/지속적 배포(CI/CD) 파이프라인을 구성하는 데 중점을 둔다. 책의 저자인 브렌트 래스터는 오픈 소스 트레이너 및 데브옵스 디렉터로서의 풍부한 경험을 바탕으로 독자들에게 깃허브 액션의 가치를 전달하고 있다.

 

책의 내용을 앞에서부터 살펴보면 CI/CD의 기본 개념이 어떻게 발전해왔는지, 깃허브 액션이 이러한 흐름에서 어떤 위상인지를 설명한다. CI/CD의 개념은 2000년대 초반에 등장했지만, 도구로 사용되기까지는 시간이 걸렸다. 이는 소프트웨어 개발이 협업 중심으로 변하고, 애자일이 널리 퍼지고, 데브옵스 문화가 정착하는 등의 사회/기술적 변화가 필요했기 때문이다. 이러한 변화를 통해 깃허브 액션은 깃허브에 자연스럽게 통합된 자동화 플랫폼으로 자리 잡게 되었다.

 

이 책은 크게 네 부분으로 나누어져 있다.

 

"1부: 깃허브 액션의 기초"에서는 깃허브 액션의 기본 개념과 구조를 설명하며, 독자들이 기초를 탄탄히 다질 수 있도록 한다. 깃허브 액션이 무엇인지, 어떻게 작동하는지에 대해 상세히 다룹니다.

 

"2부: 깃허브 액션의 구성요소"에서는 깃허브 액션을 활용하는 데 필요한 다양한 옵션과 구성 방법을 설명한다. 데이터 공유, 실행 제어 등의 방법을 통해 작업을 효과적으로 수행할 수 있도록 돕는다.

 

"3부: 보안과 모니터링"에서는 깃허브 액션을 안전하게 사용하는 방법과 모니터링 기술을 설명한다. 보안 설정, 모니터링 등의 관점에서 중요한 내용을 다루며, 로깅 및 디버깅 방법을 포함한다.

 

"4부: 심화 주제"에서는 커스텀 액션 생성, 깃허브 CLI 및 API 사용, 매트릭스 전략, 컨테이너 활용 등 심화 주제를 다룬다. 또한 다른 자동화 도구에서 깃허브 액션으로의 마이그레이션 방법에 대해서도 설명한다.

 

"러닝 깃 허브 액션"의 가장 큰 장점은 체계적인 접근 방식이다. 저자는 독자들이 처음부터 끝까지 깃허브 액션을 쉽게 따라 배울 수 있도록, 기초 개념부터 시작해 점진적으로 심화 주제로 나아간다. 각 내용마다 명확한 예제와 단계별 설명을 통해 독자들이 실제로 적용할 수 있는 지식을 제공한다. 특히 깃허브 액션의 보안을 중점적으로 다루는 부분은 실무에서 매우 유용할 것이다. 또한, 이 책은 다양한 독자층을 고려한다. 깃허브와 CI/CD 개념에 익숙하지 않은 초보자부터, 이미 경험이 있는 전문가까지 모두가 이 책을 통해 새로운 지식을 얻을 수 있다.

 

단점을 찾아보자면, 깃허브 액션의 특정 기능이나 업데이트가 책의 출판 시점 이후로 변경될 수 있다는 것이다. 기술은 빠르게 변화하기 때문에, 책에서 다루는 일부 내용이 최신 상태가 아닐 수가 있다. 물론, 저자는 이 문제를 보완하기 위해 항상 깃허브의 최신 문서를 참고할 것을 권장한다.

 

"러닝 깃허브 액션"은 깃허브 액션을 처음 접하는 사람부터 이미 사용하고 있는 전문가들까지 모두에게 유익한 책이다. 책에서 언급하는 내용들은 독자들이 깃허브 액션을 효과적으로 활용하는 데 큰 도움이 될 것이다. 깃허브 액션을 통해 소프트웨어 개발 프로세스를 자동화 및 최적화하고자 하는  모든 이들에게 추천한다.

  이 책은 깃 (Git)과 깃허브 (GitHub)에 대해서 기본 지식이 있고, 이를 활용하여 깃허브 액션들을 다루고 싶은 사람들을 독자로 합니다. 깃허브 액션으로 자동화 플랫폼과 프레임워크로 자신의 소프트웨어 개발 생명주기 프로세스를 관리하려는 사람들에게 유용한 책이라 생각합니다.

 

목차는 크게 4가지로 구성되어 있습니다.

1부. 깃허브 액션이 무엇이며, 사용 사례를 중심으로 설명되어 있습니다.

2부. 깃허브 액션의 구성 요소를 다루고 있으며, 워크플로 환경, 데이터, 실행 관리에 대한 내용으로 되어 있습니다.

3부. 액션의 보안 및 모니터링에 대한 내용을 다루고 있습니다.

4부. 조금더 응용된 액션들을 다루고 있으며, 응용된 워크플로를 구현하는 내용들로 이루어져 있습니다.

 

총평

개발 생산성을 극대화하기 위해서 깃허브 액션을 공부해보고 싶은 분들께 추천드립니다.

CI/CD를 처음 접하는 사람부터 깃허브 액션 사용을 고민하는 개발자를 위해서 실무적인 내용까지 담은 책으로,

개발 프로세스를 개선하고 업무 효율을 높이고 싶은 사람들이면 꼭 읽어보시기 바랍니다.

 

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

CI/CD는 소프트웨어 개발은 물론 최근 몇 년간 급부상한 MLOps에서도 매우 중요한 개념이다. 모델의 학습부터 배포 밒 서빙에 이르기까지 CI/CD는 적재적소에 중요하게 사용되며 개발의 효율성을 끌어올린다.

 

하지만 젠킨스, ArgoCD와 같은 기존의 CI/CD를 위한 프로그램은 물론 좋지만, 사실 ML 엔지니어들에게는 '이것까지 쓸 필요가 있나?'라는 생각을 하게 만들었다(나만 그랬을지도..). 깃과 깃허브 환경 외부로까지 나가야 하고, 비교적 중요도가 떨어지는(중요하지만, 약간은 우선순위가 떨어지는) 단순 작업을 위해 여러 가지 툴을 난잡하게 써야 한다는 인식을 지울 수 없었던 것 같다. 그러던 와중에 깃허브 액션을 통해서도 그 기능들을 모두 구현할 수 있음을 알게 되었고, 이를 배워야겠다고 마음먹게 되었다.

 

이 책은 나와 같이, 깃허브 액션의 장점을 느끼고 배워보고자 하는 사람들에게 좋은 책이다. 아주 간단한 깃허브 액션 사용법부터 문법과 로직, 그리고 보안이나 고급 워크플로까지를 전부 다루고 있기 때문에 목차를 차근차근 따라가다보면 어느새 복잡한 툴을 사용해서 수행하던 인프라 관리를 깃허브 액션만으로 할 수 있게 된 것을 발견할 수 있다. 심지어, 기존에 애져 파이프라인이나 젠킨스 등에서 사용하던 인프라 관리 코드를 깃허브 액션으로 마이그레이션 하는 방법까지 다루고 있기 때문에, 새로운 툴을 도입하는 데에 있어 드는 리소스 또한 줄일 수 있었다.

 

처음에는 문법이 익숙치 않고 indentation 같은 것들이 조금 헷갈릴 수 있지만, 일단 꾹 참고 따라가다 보면 조금씩 트일 것이다. 사소한 것 하나하나 다 잡아가려고 하지 말고, 전반적으로 쭉 훑어본다는 생각으로 접근한 후에 필요한 부분만 자세히 보는 것을 추천한다.

지속적 통합/지속적 배포(CI/CD)에 대한 개념은 소트웍스의 마틴 파울러와 매튜 포멜이 2000년 9월에 작성한 역사적인 에세이를 통해 처음 대중에 널리 알려졌습니다. 그리고 2010년 재즈 험블과 데이브 팔리가 저술한 Continuous Deilevery를 통해 CD 개념이 굳혀졌고, 이후 수십년 동안 사용되어 왔습니다.
CI/CD를 위한 도구가 널리 채택되고 소프트웨어 배포 파이프라인이라는 개념이 뿌리를 내리는 데는 오랜 시간이 걸렸습니다. 이는 소프트웨어 개발 방식에서 근본적인 사회 기술적 변화가 먼저 일어나야 하기 때문입니다.
깃허브 액션은 CI/CD 파이프라인 및 자동화 카테고리에 비교적 최근에 진입했음에도 기존 제품을 뛰어넘는 우수한 제품입니다. 이 제품은 깃허브에 결합되어 소스 코드를 저장하는 데 익숙한 개발자에게 적합합니다. 또한 깃허브 액션은 워크플로우 개념을 중심으로 설계되어 CI/CD 파이프라인을 만드는데 유용하며 오픈소스 및 엔터프라이즈 개발자 양쪽 모두 작업 과정에서 필요한 이슈 및 작업 관리 같은 모든 소프트웨어 자동화 작업을 처리합니다. 마지막으로, 깃허브 액션은 일반적인 작업을 캡슐화하고 재사용을 통해 워크플로우를 작성할 때 반복을 줄이는 구성 요소인 액션으로 구성됩니다.

이 책은 깃허브에 대한 이해가 있는 분들이 읽으면 좋을거 같습니다. 
CI/CD에 대한 관심이 있는 사람들이라면 당연히 알고 이미 활용하고 있는 분들이 많을 것이라 생각이 듭니다. 
나 또한 개발을 할때 가장 중요한 부분으로 지속적 통합이나 배포 자동화라고 생각합니다. 
특히 신속한 개발에는 무조건 필요한 필수사항이기에 개발 및 운영을 하고자 하는 분들은 한번 쯤 읽어보면 도움이 될 것입니다.
 

지난 소프트업계에서 가장 활발히 개발 과정 중에서 지속적 통합/지속적배포(`CI/CD`)로 현재는 필수 요소로 자리잡게 되었습니다.

깃허브(`Github`)안에서 관리되는 오픈소스 프로젝트에 배포 파이프라인이나 기타 자동화를 제공하려면 외부 솔루션을 이용해서 자동화했습니다.

깃허브에서는 자체 솔루션을 개발하여 깃액션(`GitActions`)을 개발하여 외부 솔류션 없이도 손쉽게 CI/CD 파이프라인을 구축할 수 있게 했습니다.

이 책은 깃허브 액션의 잠재력과 자동화가 가진 이점을 드러내기 위해 쓰인 책입니다. 기초, 구성요소, 심화 등 사용법에 초점을 깊이 두고 있습니다.

"깃허브 액션으로 시작하는 CI/CD"는 깃허브 액션을 처음 접하는 사람부터 숙련된 사용자까지 모두에게 유용한 정보를 제공하는 실용적인 안내서입니다. 깃허브 액션의 강력한 기능을 활용하여 개발 프로세스를 혁신하고 싶다면 이 책을 꼭 읽어보시길 바랍니다.

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

홍보 카툰 잘그렸다ㅋㅋㅋㅋㅋㅋ 이전에 읽은 책들에서 배포 자동화 등을 깃허브 액션에서 구현하는 경우가 많아서 이게 뭔지 알고는 있는 상태였다. "깃허브로 시작하는 지속적 통합 및 배포 자동화"란 서브 타이틀을 달고 있는 이 책은 깃과 깃허브에 대한 기본 지식이 있는 사람을 대상으로 한다. 1부에서는 깃허브 액션 기초, 2부는 구성 요소, 3부는 보안과 모니터링, 4부는 심화로 크게 네 파트가 있다. 2024년 4월 기준으로 작성된 따끈따끈 최신 정보를 가득 얻을 수 있다.

깃허브에 레포지토리 올리기만 했지 깃허브 액션에 대해서는 아는거 전무한 상태였는데 이 책의 1부를 읽고 알게 된 점 정리하자면 다음과 같다.

1) 워크플로는 깃허브 액션에서 활동의 흐름과 순서를 제어하는 스크립트 또는 파이프라인이고 개별 액션이 워크플로 내에서 특정한 태스크를 호출하는 함수다. 스타터 워크플로가 예시로 주어진다. 깃허브 마켓플레이스의 액션탭에는 다른 사람이 만든 액션이 있다. 이 액션은 완전한 기능을 갖춘 코드로 사용자가 자신의 워크플로에 자유롭게 도입할 수 있다. (마켓 플레이스는 기준 이상으로 사용시 이용료 부과)

2) 깃허브 액션은 액션을 사용하는 리포지터리가 공개 상태이거나 액션을 실행하는 시스템(러너)을 직접 호스팅하는 경우에 무료다. 자체 호스팅을 사용하면 러너 사용에 대한 요금은 부과되지 않지만 자체 서버에 러너 어플리케이션을 설치하고 진행한다.

2장의 액션 작동 원리에서는 이벤트가 워크 플로 발동(트리거)부터 시작해서 워크플로 실행까지 다룬다. 3장에서는 액션의 구성요소, 액션과의 상호작용을 다루고 4장에서 워크플로 사용법이 시작된다. 4장에서 워크플로를 만들면서 깃허브의 기능을 알아보고 비주얼 스튜디오 코드에서 확장하여 워크플로를 실행 및 관리한다.

 

 

 

러닝 깃허브 액션은 개발 생산성을 극대화하는 깃허브 액션 종합 가이드답게 깃허브 액션으로 코드 유효성 검사부터 복잡한 배포 파이프라인까지 구현함을 목표로 하고 있다. 1부 주요 내용에서 이렇게 기초를 다지고 2부에서는 지식을 확장하여 구성요소에 대해 공부한다. 3부는 모니터링 및 부안, 4부는 심화 내용을 다룬다.


 


 

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

깃허브 액션이 처음 생겼을 때가 기억난다.

CI/CD 서비스를 사용하려면 따로 서버를 띄워 젠킨스를 통해 사용하곤 했었다. GitHub Actions가 생긴 이후로는 git public 레파지토리에 올라가는 경우엔 부담 없이 CI/CD 서비스를 사용할 수 있게 되었다.

GitHub Actions이 릴리즈 된 이후로 CI/CD의 영역은 좀 더 부담없이 개발자들에게 다가왔다. 이제는 입문하는 개발자들도 부담없이 workflow를 짜서 사용하곤 한다.

개발자들이 본인의 GitHub 프로필을 꾸밀때도 깃허브 액션을 통해 자동으로 내가 코딩하는 시간을 계산해서 매일 갱신해주거나, 커밋 개수를 갱신해 준다거나 하는 서비스도 많이들 사용한다.

이러한 CI 영역에 해당되는 깃허브 액션을 사용하는 방식을 가이드해주는 책이다.

크게 4가지의 챕터로 나뉜다.

  1. 깃허브 액션의 기초
  2. 깃허브 액션의 구성 요소
  3. 보안과 모니터링
  4. 심화 주제

챕터 1에서는 기초적인 깃허브 액션에 대한 설명과 잡을 어떻게 만드는지 등등의 내용을 얘기해준다.

jenkins의 pipeline을 짜본 사람이라면 정말 익숙할 것이다. 해당 yml 파일을 통해 각각의 설정 키워드가 어떤걸 뜻하는지, 깃허브 웹 인터페이스를 어떻게 사용하는지에 대해 알려준다. 또한 러너에 대한 개념을 알려주며 우리가 선택할 수 있는 여러가지의 러너중에서 어떠한 러너들이 있는지, 상황에 따라서 어떤 러너를 선택해야하는지에 대한 부분까지 얘기해준다.

 

챕터 2에서는 직접 본인이 워크플로를 실행할 수 있도록 커스텀하게 짜는 과정을 진행한다. 사실상 워크플로의 전체 구성과 어떠한 기능들을 사용할 수 있는지에 대해 알려주는데 챕터 2까지 읽기만 해도 대략적인 깃허브 액션에 대한 기본적인 사용방법은 거의 마무리 된다고 보면 된다.

 

챕터 3에서는 깃허브 레파지토리에 대한 보안 자동화처리 등을 알려준다. 추가적인 본인은 여기서 CODEOWNERS 파일에 대한 실제 (깃허브에서 권장하는) 사용 가이드가 흥미로웠다. 추가적으로 PR을 통해 깃허브 액션의 보안 취약점을 건들 수 있다고 하는 부분이 꽤나 흥미로웠다.

 

챕터 4에서는 사실상 좀 더 깊은 부분을 탐구한다. 커스텀한 액션들을 만드는 것 뿐만 아니라 깃허브 cli, api등을 사용한 제어. 또한 타 툴에서의 깃허브 액션으로의 마이그레이션 등을 설명해준다.

 

개인적으로 깃허브 액션에 대한 간단한 기능들만 알고 있고 세세한 부분에 대해선 잘 몰랐는데, 책을 읽으며 깃허브 액션이 아닌 다른 CI 툴에서 사용할 수 있는 기능들도 알 수 있었다. (깃헙 액션엔 이거 있는데 다른곳엔 당연히 지원하겠지? 등의 생각을…)


별점 : ⭐️⭐️⭐️⭐️

한줄평 : document로만 접할 수 있었던 깃허브 가이드를 좀 더 상세한 설명을 통해 알아볼 수 있다.

이런분께 추천:

  1. Devops에 관심있는 개발자
  2. github action을 통해 본인의 프로덕트를 자동화 시키고 싶은 개발자.

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


 

러닝 깃허브 액션 Learning GitHub Actions

 

이번에 살펴볼 책은 깃허브 액션에 대한 내용을 다루는 책이다.

 

이 책은 깃허브의 일반적인 가이드북이 아니다.

대신, 깃허브의 다양한 기능을 활용하여 지속적 통합(CI) 및 지속적 배포(CD) 파이프라인을 생성하고, 반복적인 작업을 자동화하여 개발 프로세스를 간소화할 수 있도록 하는데 목적이 있다.

 

대상독자

따라서 이 책의 대상은 깃과 깃허브에 대한 기본 지식을 가지고 있어야 한다.

그리고 이것을 이용해 워크플로에 액션을 구현하는 방법을 알고 싶어 하는 개발자를 대상으로 한다.

특히, 젠킨스나 트래비스 CI 같은 솔로션을 사용해 본 경험이 있고, 깃허브 액션의 자동화 플랫폼과 프레임워크로 자신의 소프트웨어 개발 생명주기 프로세스를 개선하려는 개발자에게 많은 도움이 될 것이다.

 

이책은 다음 총 4개의 장으로 구성되어 있다.

 

PART1. 깃허브 액션의 기초

1장은 깃허브 액션의 정의와 작동 방식에 대한 기본 사항, 프레임워크의 핵심 요소, 그리고 전체적인 흐름을 소개한다. 이를 통해 깃허브 액션에 입문하는 개발자들이 알아야 할 기본 원리와 사용법을 설명하여 깃허브 액션을 이용하는데 어려움이 없도록 기반을 다진다.

 

PART2. 깃허브 액션의 구성 요소

2장에서는 설정, 데이터 공유 및 저장, 워크플로 실행 트리거 및 제어에 필요한 각종 구성 요소를 다룬다. 이러한 기술은 액션을 사용해 원하는 작업을 완료 하는데 핵심적인 역활을 한다. 이번 장을 통해 자신에게 가장 적합한 액션을 직접 만드는 방법을 배울 수 있을 것이다.

 

PART3. 보안과 모니터링

3장에서는 보안과 모니터링에 대해 다룬다. 보안을 설정, 설계, 모니터링 이라는 세 가지 관점에서 살펴보고, 로깅에 사용하는 다양한 옵션과 문제 디버깅 기술을 배워 모니터링 하는 방법을 익힐 것이다.

 

PART4. 심화주제

4장 심화주제 에서는 일상적으로 잘 다루지 않는 더욱 흥미로운 주제를 깊이 있게 탐구할 것이다. 나만의 사용자 지정 액션 제작, 나만의 스타터 워크플로 및 재사용 가능한 워크플로 제작, 깃허브 CLI 및 API 사용, 워크플로에서 매트릭스 전략 및 컨테이너 사용 등이 포함된다. 또한 다른 자동화 툴을 사용하는 경우 깃허브 액션으로 마이그레이션 하는 방법에 대한 몇 가지 실용적인 팁과 예시도 제공한다. 마지막으로, 마이그레이션을 부트스트랩하고 자동화하는데 도움이 되는 신규 기능인 깃허브 임포터에 대한 심층적인 검토와 예시도 담겨있다.

 

 

책의 최신 정보

이 책을 읽다 보면 일부에서 '2024년 4월 기준' 이라는 표현이 보인다. 

저자 본인이 본인을 위한 면책문구를 만들어둔 것이다. 현명한 방법이다.

집필시점에 최신의 정보를 최대한 담으려고 노력했겠지만, 책의 집필 시점과 출판 시점에는 상당한 시간차가 존재한다. IT 기술이 워낙에 빠른 속도로 발전하기 때문에 집필 시점의 내용이 우리가 책을 읽을 때에는 변경되거나, 아예 사라졌을 수도 있음을 염두해 두어야 한다. 베타 버전으로 표시된 기능은 최신 깃허브 문서를 참조해야 가장 최신의 정보를 얻을 수 있다.

 

 

마지막으로

이 책은 깃허브 액션을 통해 개발 프로세스를 자동화하고 간소화하려는 개발자들에게 매우 유용한 가이드가 될 것이다.

깃허브 액션의 기본 개념부터 고급 주제까지 폭넓게 다루고 있어, 다양한 수준의 개발자들이 참고할 수 있는 유익한 자료가 될 것이다.

 

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

필요한 선수 지식
요구 학력
관련학과 대졸 이상
(실무에 관련된 내용)
예제 코드 : YAML
난이도 : ★★★★☆
 
책의 구성 중 마음에 들었던 주제
2장 액션의 작동 원리
'액션'이라는 용어 정리와 워크플로를 구성하는 잡, 트리거, 스텝 간의 관계를 설명한다.
 
8장 워크플로 실행 관리
워크플로를 트리거하는 다양한 이벤트와 브랜치, 태그, 파일 변경과 같은 옵션들에 대해 설명한다. 또한, 여러 워크플로 인스턴스가 동시에 실행되는 것을 방지하기 위해 동시성 제어 기법을 설명한다.
 
14장 깃허브 액션으로 마이그레이션
GitHub Actions Importer(깃허브 액션 임포터 도구)를 통해 Azure DevOps, CircleCI, GitLab CI/CD, Jenkins, Travis CI, Bamboo Pipeline에서 손쉽게 마이그레이션 하는 방법을 설명한다.
 
읽고 난 후
자동 배포와 같은 CI/CD(Continuous Integration and Continuous Delivery/Deployment)는 게으른 개발자들의 종착역이라고 생각한다. 아무리 멋진 프로그램을 작성해도 컴파일하고 배포하지 않으면 사용자는 있을 수 없다. 하지만, 컴파일과 테스트, 배포는 개발에 비해 굉장히 지루한 일들이다.
책의 구성은 스크린샷 기반의 많은 삽화와 풍부한 예제 코드들이 YAML를 처음 보는 개발자들도 쉽게 적용할 수 있게끔 되어 있다. 귀찮은 것이 싫은 게으른 개발자들에게 어울리는 책이다.
버전 관리 시스템도 CVS에서 시작되어 SVN과 Git으로 발전하고 지금은 흔히 사용하듯이 CI/CD도 흔히 사용될 날들이 기대된다.

이 책은 단순히 코드를 깨끗하게 유지하는 방법을 넘어서, 효과적인 소프트웨어 개발 프로세스를 구축하는 데 필요한 철학과 기법을 제시한다. 켄트 벡의 풍부한 경험과 실질적인 조언은 개발자가 자신의 작업 방식을 재고하고, 더 나은 코드와 더 나은 개발 문화를 만드는 데 큰 도움이 될 것이다. "Tidy First?"는 개발자가 처음부터 올바르게 시작하여 지속 가능한 개발을 실천하도록 독려하는, 가치 있는 지침서다.

 

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

브렌트 래스터 지음

정의형 정한결 옮김

 

Github Action을 처음 접한건 거의 1년전이다. 기존에는 Jenkins를 기반으로한 CI/CD 환경을 사용하고 있었다. 처음 Github Action을 접했을 때는 신기하기도 하고, 익숙하지 않아 불편하기도 하고 했었던 기억이 있다. 그 당시 제대로 배운게 아니라 필요한 부분만 찾아보며 공부했었는데 이렇게 책으로 볼 수 있어서 좋았다.

 

목차

목차는 크게 4개로 되어 있다.

- 1부: 깃허브 액션의 기초

ㄴ 사용사례, 이용요금, 체크리스트, 컴포넌트 소개, Job 구현, Runner 등에 대해서 다룬다.

 

- 2부: 깃허브 액션의 구성 요소

ㄴ 워크플로우 환경, 데이터, 실행 관리에 대해 다룬다.

 

- 3부: 보안과 모니터링

ㄴ 액션의 보안 설정 및 모니터링에 대한 내용을 다룬다.

 

- 4부: 심화 주제

ㄴ 커스텀 액션, 고급 Workflow에 대한 내용을 다룬다.

 

정리

 

깃허브 액션은 다음과 같이 동작한다.

1. 이벤트 발생

2. Repository에 저장된 Workflow 정의가 트리거

3. 워커플로가 지정하는 러너라는 시스템에서 Job이 실행

4. Job은 사전에 정의된 액션을 호출하거나 러너의 OS Shell 명령을 실행하는 Step으로 구성

 

책을 읽다보니 공감되는 부분이 많았다. 내가 Jenkins를 사용하면서 느꼈던 생각이 책에 그대로 남겨 있어서 신기하기도 했다. 유연했지만 너무 유연해서 문제였다. 하나의 파이프라인을 만들기 위해서 너무 많은 과정들이 필요한게 Jenkins를 사용했을 때 힘들었던 부분이었던 기억이 있다. 나만 그렇게 느낀게 아니구나 싶었다.

 

앞서 새로운 내용을 배우다보니 새로운 용어들도 많이 접하게 되었다. 많은 용어를 한번에 보니까 용어들끼리 의미가 뒤섞여서 생각나기도 하고. 헷갈리기 시작했다. 그럴 때 노트 부분이 굉장히 좋았다.

새로운 기술에 배울 때에는 용어에 익숙해지는게 굉장히 어렵다. 중간중간에 존재하는 노트들이 배움에 있어서 어려운 점을 조금이나마 줄여주는 역할을 했다.

 

가장 집중해서 본 부분은 4부 심화주제 부분이었다.

앞서 내용들은 이미 알고 있는 내용도 많고 잘 쓰고 있어서 가볍게 보기 좋았다면 4부 심화 주제. 11장에서는 커스텀 액션에 대한 내용이 나온다. 액션을 사용하다보면 나에게 맞게 커스텀하게 사용하고 싶을 때가 있었다. 그런 궁금증을 해결해주는 장이었다. 아무래도 심화 주제이다보니 그에 맞는 내용들이 나온다. 그중에는 내가 이미 적용해서 사용하고 있는 12.2 재사용 가능한 워크플로 구조가 나온다. 컴포넌트가 워낙 많다보니 모든 컴포넌트에 action.yml을 작업하기 어렵다. 한 곳이 수정되면 전체를 바꿔줘야 하는 귀찮음이 있기 때문이다. 그래서 우리 팀에서는 Shared라는 폴더 내에 재사용가능하도록 액션을 작업해두고 컴포넌트에서는 해당 워크플로를 호출해서 사용하고 있다.

마지막 장인 14장 깃허브 액션으로 마이그레이션 을 많은 사람들이 참고하지 않을까 싶다.

대부분 깃허브 액션이 아닌 다른 CI/CD 구성을 진행해두었을텐데 그런 부분을 깃허브 액션으로 마이그레이션 하는 방법을 다룬다. 

 

책에서는 다음과 같은 부분을 다루고 있다.

- 애져 DevOps

- Bamboo

- CircleCI

- GitLab

- Jenkins

- TravisCI

 

기존에 위에 적힌 CI/CD 환경을 깃허브 액션으로 옮길 수 있도록 설명해준다. 기회가 되면 진행해보는 것도 좋을것 같다.

 

 

총평

깃허브에 대한 내용을 친절하게 잘 설명해주고 있는 책이다. 어렵지 않게 깃허브 액션을 접할 수 있고, 기존에 사용하는 CI/CD를 깃허브 액션으로 마이그레이션 하는 방법까지 친절하게 설명해주는 책이었다. 나에게 있어서는 깃허브 액션에 사용되는 용어를 정리할 수 있게 도와준 책이고, 부족했던 내용도 채워준 부분이 있다. 깃허브 액션을 처음 접하는 개발자가 있다면 해당 책을 통해 깃허브 액션을 접해보면 좋을 것 같다.

 

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

 

러닝 깃허브 액션 - 브렌트 래스터  저/ 정의형 ,  정한결  역

 

구조와 흐름이 없는 자동화 플랫폼은 그저 도구 모음일 뿐입니다.
 

 

러닝 깃허브 액션

 

 

자동화 플랫폼을 효율적으로 잘 사용하려면 작업의 구조와 흐름을 잘 이해하고 있어야 한다. 깃허브 액션을 사용할 때, 풀 리퀘스트로 코드를 변경할 때마다 깃허브가 지속적으로 배포 파이프라인을 발동한다. 만약 깃허브 액션을 사용하지 않는다면, 풀 리퀘스트가 발생했다는 깃허브의 알림에 응답해서 처리할 수 있는 외부 도구가 필요할 것이다. 깃허브 액션의 가장 큰 장점은 깃허브에 내장된 기능으로 자동화를 구현할 수 있다는 점이다. 이렇게 정의한 자동화는 편리하게 생성한 워크플로를 코드와 같이 깃허브 리포지터리에 저장한다. 즉, 액션은 깃허브에 내장된 기능으로 자동화를 쉽게 구현하는 것이다. 

 

 

개요는 간단하다. 일치하는 이벤트가 발생하면,

리포지토리에 저장된 워크플로 정의가 발동되고, 

워크플로가 지정하는 러너라는 시스템에서 이 실행된다.

은 사전 정의된 액션을 호출하거나 러너의 OS 셀에서 명령을 실행하는 스텝으로 구성된다..

 

 

CI/CD가 처음 등장했을 때는 젠킨스 등으로 파이프라인을 만들었는데, 너무 유연햇기 때문에 개별 구성 요소를 한 파이프라인으로 묶는데 많은 과정이 필요했다. 이 점이 깃허브 액션과 비교되는 점이다. 깃허브 액션은 프로세스에서 파이프라인이라는 용어를 명시적으로 사용하지는 않지만, 프레임워크의 흐름을 보면 파이프라인의 구조와 거의 흡사하다. 워크플로에는 이라 부르는 작은 기능 단위가 서로 연결되는데, 은 다른 애플리케이션에서 스테이지라고 부른다. 잡과 스테이지는 전체 자동화 프로세스 내에서 딱 집어 구분되는 개별적인 기능 하나를 수행하는 구간을 의미한다. 

 

 

 

깃허브 마켓플레이스의 액션을 보면, 다른 사람들이 만든 유용한 액션이 있다. 사용자는 원하는 액션을 찾아서 호출만 하면 된다. 액션들은 완전한 기능을 갖춘 코드로, 사용자가 자신의 워크플로에 자유롭게 도입할 수 있어서 큰 장점을 가진다. 워크플로를 만들기 위해 액션 마켓 플레이스에서 액션을 찾는다면 직접 코딩하는 시간과 노력을 줄일 수 있다. 마켓 플레이스에서 제공하는 기능을 살펴보면 IDE와의 상호작용, 현지화, 모바일 개발,  지라(JIRA)를 위한 카테고리도 있다. 마켓 플레이스의 액션들은 깃허브가 공식적으로 만들어 올릴 때도 있으나, 다른 개인이나 조직, 회사 등 액션을 사용하는 사용자들이 직접 만들어 공유하기도 한다.

 

이 책에서, 깃허브 액션의 작동원리를 예시와 함께 찾아볼 수 있었고, 각각의 단계를 구현하는 방법을 배웠다. 특히, 이벤트에 반응하여 특정 잡을 실행하는 워크플로가 핵심요소인데, 워크플로보다 한 단계 다음에서는 각 이 자신이 맡은 스텝을 실행한다. 작동원리 이외에도, 직접 액션 마켓플레이스로 이동해서 정보를 확인하는 방법, 워크플로를 만들고, 실행하고, 성공 여부를 모니터링 하는 방법, 깃허브가 제공하는 기본 러너 시스템과 직접 구성해서 호스팅한 러너 시스템 각각의 사용법, 워크플로의 환경을 관리하는 방법, 워크플로에서 데이터를 관리하는 방법, 액션을 통해 자동화 하는 방법, 직접 커스텀 액션을 만드는 방법 등을 다양한 도구들인 깃허브, vscode, 도커 등을 사용하여 활용할 수 있도록 그림과 실제 코드가 같이 정리되어 있었다.

 

깃허브 활용법에 대해서만 공부하고, 깃허브 액션은 활용해볼 생각을 하지 못했는데 이 책을 천천히 따라가면서 공부하면 워크플로 자동화와 모니터링에 활용할 수 있을 것이다.

 

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

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
러닝 깃허브 액션
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
러닝 깃허브 액션
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
러닝 깃허브 액션
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0