여기어때, CI/CD 모듈화로 개발 생산성 UP!

by DD
8개월 전
조회수 3

Gitlab CI 템플릿의 복잡성으로 인해 CI 공통화의 필요성을 느낌

Gradle, Yarn 등 빌드 도구별 모듈 설계를 통해 CI 재사용성을 확보

전용 CI Agent 개발로 CI 파이프라인의 유연성을 향상시키고, 개발 생산성 증대

CI 공통 모듈 설계의 핵심 원리

CI 공통 모듈 설계를 위해 Gitlab CI의 복잡한 템플릿 구조를 분석했다. 구체적으로 GradleYarn과 같은 빌드 도구별 모듈을 분리하여 재사용성을 높였다. 따라서, 변경사항(changes), 의존성(cache), CI 명령어를 조합하여 유연한 파이프라인을 구축했다.

전용 CI Agent 개발의 장점

전용 CI Agent는 Go 언어로 개발되어 가볍고 빠른 성능을 제공한다. Shell Script의 복잡성을 줄이고, Slack 알림Manifest 자동 업데이트 기능을 구현했다. 반면, Agent 개발 및 유지보수에는 추가적인 노력이 필요하며, Agent 이미지 관리에 대한 고려가 필요하다.

CI/CD 파이프라인 테스트 자동화

CI 기능 추가 및 변경 시, Gitlab CI의 Trigger 기능을 활용하여 테스트를 자동화했다. 구체적으로 Merge Request 발생 시 테스트를 수행하고, Dev 브랜치에 Push 시 배포를 트리거한다. 결과적으로, CI 파이프라인의 안정성을 높이고, 개발 생산성 향상을 달성했다.

여기어때 CI/CD 개선기 Part 2: CI Pipeline 설계