CI 시간, 이제 안녕! 최대 4.6배 빨라진 빌드 속도

by DD
2년 전
조회수 2

CI 파이프라인소요 시간을 줄이기 위해 pnpmturborepo를 도입함

의존성 캐싱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% 이상 단축하여 빌드 속도를 향상시킨다.

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