깃허브 액션
깃허브 액션은 CI/CD, 기타 여러 워크 플로우를 깃허브 안에서 가능케 하는 툴이다.
따라서 레포지토리 안에서 배포도 하고 테스트 코드도 실행하고 Lint 체크도 하는 것이 가능하다. 별도의 툴이 필요하지 않다는 점이 정말 큰 이점이라고 생각한다.
과거 국비지원 수업에서 팀원이 젠킨스로 CI/CD를 하겠다고 하여 새로운 것을 배우고 적용하는 오랜 시간이 필요했던 경험이 있는데. 깃허브 액션은 정말 배우기 쉬운 편인 것 같아서 시간을 절약할 수 있었겠구나 라는 생각을 했다.
책을 읽게 된 이유
배포는 Vercel로 자연스럽게 자동화가 되고 있었고 테스트 코드, Lint 체크를 PR할 때 자동화하기 위해서 사용했었다.
정말 너무 편했던 것 같다. 어떤 방식으로 진행하겠다는 코드 작성도 쉬웠고 마켓 플레이스에 이미 좋은 워크플로우를 만들어 올려놓은 덕분에 정말 수월하게 작업했다.
전체적인 구조를 이해하지 못해서 아쉬웠던 점이 있다. 조금 더 단위를 잘 만들어서 워크 플로우를 중복 작업 없이 하고 싶었는데 그럴 시간도 지식도 없어서 아쉬웠다. 이 아쉬운 점을 뒤로 하고 방학을 맞이하여 공부를 한다면 큰 장점이 된다고 생각했다. 이 책을 잘 씹어먹고 공식문서도 씹어먹으면 깃허브 프로필에 '기술 스택 : 깃헙 액션'을 넣을 수 있지 않을까 라는 소소한 망상도 하게 됐다.
간략한 코드 작성 방식
깃허브 액션의 워크플로는 YAML 파일로 작성한다.
PR이나 PUSH같은 event가 발생하면 작업(job)을 돌리게 된다.
각각의 단계를 step이라고 하고 재사용할 수 있는 코드 단위를 actions라고 한다.
추가로 작업이 실행될 가상 머신도 지정하게 된다.
job, action, 그리고 환경변수 정도만 지정하면 된다.
(조만간 책 공부를 정리해서 올려도 좋겠구나 라고 생각한다.)
깃허브 액션만의 장점
- Jenkins, Circle, Travis같은 외부 툴을 사용하지 않고 CI/CD를 사용할 수 있다.
- 깃허브 아이디만 있어도 사용할 수 있다. (학생은 완전 무료이고 다른 계정은 일정 분량까지는 무료로 사용할 수 있다고 알고 있다.)
- 마켓플레이스가 잘 활성화되어 있어서 어지간한 워크플로우는 이미 누군가가 작성해뒀다.
CI/CD가 이젠 필수가 되어버린 세상
분명 국비지원 수업을 들었을 때에는 CI/CD를 들으면 우왕!
같은 반응, 대단히 무서운 무언가 정도로 느꼈다. 이제 2년여의 시간이 지났다. 그 때에는 배포만 해도 오케이 정도 였던 것 같은데 CI/CD가 이젠 당연한 느낌이다. (정확하게는 CD가 당연한 느낌)
작년에 정통파 멘토님의 좋은 영향으로 코드를 PR하면 Lint 체크를 하고, 유닛 테스트, E2E 테스트를 통과하도록 하는 작업을 해봤다. (테스트코드는 거의 없었고 워크플로우를 시도해보는 정도였다.)
정말정말 너무 좋은 경험이라고 느꼈고 나중에 가서야 이게 CI의 한 종류이지 않을까? 라는 생각을 했다.
깃허브는 개발자라면 정말 많은 사람들이 애용하는 사이트이다. 개발 작업대이자 포트폴리오인데, 깃허브 액션을 잘 사용한다면 내 작업이 더 짜임새있게 될 것이고, 누군가가 본다면 그게 내 포트폴리오 중 하나인 것 같다.