목록 보기
CI 소요시간을 최대 4.6배 개선하는 방법
데브옵스

CI 소요시간을 최대 4.6배 개선하는 방법

인프런
인프런
2023년 11월 1일

두줄요약

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 환경변수 전달 및 잠금 파일 동기화 상태 확인 필요

다음 읽기

#CI/CD 주제를 다룬 다른 회사 글

FE Core팀의 CI 속도전: 캐시 전략을 활용한 병렬 빌드

monorepo CI에서 병렬 빌드와 캐시 사전 점검으로 빌드 시간을 크게 줄인 사례를 정리했습니다. Runner 개선과 검증 단계 분리로 안정성까지 함께 높였습니다.

쏘카
쏘카
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...