GitHub Actions, 개발 생산성을 저해하는 주범?

by DD
2개월 전
조회수 4

저자는 GitHub Actions의 느린 속도, 복잡한 로그 뷰어, YAML 기반 설정의 어려움을 지적하며, Buildkite를 대안으로 제시함.

GitHub Actions의 Marketplace를 통한 액션(Action) 사용의 보안 위험성제한적인 컴퓨팅 자원 문제를 제기함.

Buildkite는 자체 인프라 관리, 개선된 로그 뷰어, 유연한 파이프라인 설정을 통해 개발자 경험(Developer Experience)을 향상시킨다고 주장함.

커뮤니티에서는 GitHub Actions의 무료 tierMac/Windows 지원의 장점을 언급하며, Buildkite의 인프라 관리 부담에 대한 우려를 표명함.

GitHub Actions의 사용성 문제

게시글은 GitHub Actions의 로그 뷰어(Log Viewer)가 느리고, 브라우저를 자주 다운시킨다고 지적한다. 특히, 긴 빌드 로그(Build Log)를 탐색하는 과정에서 여러 번의 클릭과 페이지 로딩을 거쳐야 하는 점을 비판한다. 또한, 백 버튼(Back Button)의 예측 불가능한 동작은 개발자의 작업 흐름을 방해하는 요소로 작용한다. 이러한 사용성 문제는 개발자의 디버깅(Debugging) 시간을 증가시키고, 생산성을 저하시킨다.

GitHub Actions YAML의 복잡성

저자는 GitHub Actions의 YAML 기반 설정 방식이 복잡하고, 자체적인 표현식 언어와 다양한 Gotcha(함정)를 가지고 있다고 비판한다. 특히, 조건부 환경 변수 설정과 같은 간단한 작업에도 복잡한 구문과 오류 처리가 필요하며, 이는 개발자의 학습 곡선(Learning Curve)을 높인다. YAML 기반 설정(YAML-based Configuration)은 CI 시스템의 유연성을 제공하지만, 동시에 유지보수성을 저해하는 요인으로 작용한다.

GitHub Actions Marketplace의 보안 위험

게시글은 GitHub Actions Marketplace에서 제공되는 액션(Action)의 신뢰성 문제를 제기한다. Marketplace에서 제공되는 액션은 종종 외부 개발자가 작성한 코드를 포함하며, 이는 보안 취약점(Security Vulnerability)으로 이어질 수 있다. 저자는 사용자가 액션의 코드를 직접 확인하지 않고 사용하는 경우, GITHUB_TOKEN과 같은 중요한 정보가 노출될 위험이 있다고 경고한다. 이는 공급망 공격(Supply Chain Attack)의 가능성을 높인다.

Buildkite의 장점: 자체 인프라 관리

저자는 Buildkite가 자체 인프라를 관리할 수 있도록 지원하여, 개발자가 컴퓨팅 자원(Computing Resource)을 직접 제어할 수 있다는 점을 강조한다. Buildkite는 개발자가 EC2 인스턴스(EC2 Instance), NVMe 드라이브(NVMe Drive), Docker 레이어 캐시(Docker Layer Cache) 등을 활용하여 빌드 속도를 향상시킬 수 있도록 지원한다. 이러한 유연성은 GitHub Actions의 제한적인 Runner(러너) 환경과 비교하여 큰 장점으로 작용한다.

Buildkite의 개선된 사용자 경험

저자는 Buildkite의 로그 뷰어(Log Viewer)가 ANSI 색상 코드를 지원하고, 테스트 프레임워크의 서식을 그대로 유지하여 가독성을 높인다고 설명한다. 또한, Buildkite는 Annotation(주석) 기능을 통해 빌드 단계에서 생성된 Markdown 형식의 출력(Markdown Output)을 빌드 페이지에 직접 표시하여, 개발자가 필요한 정보를 쉽게 확인할 수 있도록 돕는다. 이러한 기능은 GitHub Actions의 복잡한 로그 탐색 문제를 해결하고, 개발자의 생산성(Productivity)을 향상시킨다.

GitHub Actions Is Slowly Killing Your Engineering Team - Ian Duncan