
데브옵스
여기어때 CI/CD 개선기 Part 2: CI Pipeline 설계
두줄요약
CI Template이 분산되고 팀별 브랜치·빌드 방식이 달라 공통화가 어려운 문제를 개선했습니다. 모듈화와 전용 Agent, 자동화 테스트로 유지보수성과 일관성을 높였습니다.
문제 상황
- 기존 CI Template이 30여 개 파일로 분산되어 include 관리가 복잡한 상태
- 팀별 브랜치 전략, 폴리레포·모노레포 구조, 백엔드·프론트엔드 CI 방식 차이로 공통화 범위 산정이 어려운 상황
- Build/Test 외 특수 Job과 긴 Shell Script가 늘어나 유지보수 부담이 커진 상태
해결 방법
- stage, workflow, 브랜치 규칙, 공통 변수, 공통 스크립트 등 변하지 않는 부분을 먼저 모듈화
- Gradle, Yarn 등 빌드 도구별 모듈로 분리해 changes, cache, CI 명령어 조합만 교체하는 구조 설계
- 복잡한 알림·업데이트 로직은 Go 기반 전용 CI Agent로 분리해 스크립트 길이와 복잡도 축소
적용해볼 점
- CI 공통화 시 프로젝트 의존관계와 언어·도구별 차이를 먼저 분해할 필요성
- 변경 감지, 캐시, 빌드/테스트/배포 명령의 재사용 단위 정의 중요성
- CI 자체 테스트를 Trigger, Workflow, Rules로 자동화하는 접근의 유용성
