
CI 소요시간을 최대 4.6배 개선하는 방법
두줄요약
pnpm 전역 캐시와 Turborepo Remote Cache로 모노레포 CI 시간을 최적화했습니다. 캐시 적중 기준 의존성 설치와 빌드를 크게 줄여 전체 CI를 최대 79% 개선했습니다.
문제 상황
- 모노레포 패키지 증가와 순차적 빌드·테스트로 CI 시간이 4분 14초에서 12분 4초로 증가
- Jenkins Multibranch Pipeline의 브랜치·PR별 워크스페이스 분리로 의존성·Task 캐시 공유 불가
해결 방법
- pnpm의 전역 store 경로를 컨테이너 볼륨으로 마운트해 에이전트 내 의존성 캐시 공유
- Turborepo의 콘텐츠 기반 해싱·증분 빌드·병렬 실행과 Remote Cache 서버 연동
- SonarQube 분석 제외 대상 설정 및 CD 배포 대기 시간과 정적 분석 병렬화
성능/운영 포인트
- 의존성 캐시 적중 시 설치 시간 88초에서 2.6초로 약 97% 단축
- Turborepo Task 캐시 적중 시 빌드 시간 4분 36초에서 4.114초로 약 98.5% 개선
- 전체 CI 평균 시간 6분 3초에서 2분 4초로 최대 66%, 개별 사례 최대 79% 단축
주의할 점
- node_modules 압축 캐시와 의존성 캐시 이미지는 다운로드·압축 해제·이미지 pull 비용 측정 필요
- Remote Cache의 배포 산출물 재사용을 위해 turbo.json의 outputs 경로 정확한 설정 필요
- CI 컨테이너 실행 시 CI 환경변수 전달 및 잠금 파일 동기화 상태 확인 필요



