CI 시간, 이제 안녕! 최대 4.6배 빨라진 빌드 속도
by DD
2년 전
조회수 2
CI 파이프라인의 소요 시간을 줄이기 위해 pnpm과 turborepo를 도입함
의존성 캐싱 및 Remote Caching을 활용하여 빌드 시간을 획기적으로 단축함
최대 4.6배의 CI 소요 시간 단축 및 개발 생산성 향상
pnpm과 yarn의 의존성 관리 비교
pnpm은 symlink를 활용하여 node_modules 구조를 최적화한다. 구체적으로, 전역 캐시를 통해 디스크 I/O를 줄이고, 의존성 설치 시간을 단축한다. 따라서, yarn 대비 최대 2배 빠른 속도로 의존성을 설치하여 CI 시간을 절약한다.
Turborepo를 활용한 증분 빌드
Turborepo는 Content-aware hashing을 통해 코드 변경을 감지하고, 변경된 패키지만 빌드한다. Local Filesystem Cache를 활용하여 Task 캐시를 적용하고, Remote Caching을 통해 여러 에이전트 간 캐시 공유를 가능하게 한다. 결과적으로, CI 소요 시간을 대폭 줄여준다.
CI 환경에서의 캐시 볼륨 마운트
Jenkins 환경에서 캐시 볼륨 마운트를 통해 의존성 캐시를 공유한다. 구체적으로, pnpm store-path 옵션을 동일한 경로로 설정하여, 브랜치/PR 간 의존성 캐시를 재사용한다. 따라서, 의존성 설치 시간을 97% 이상 단축하여 빌드 속도를 향상시킨다.