CI 소요시간을 최대 4.6배 개선하는 방법
·2023.11.02 06:00
핵심 내용
pnpm과 turborepo를 도입하여 모노레포 환경의 CI 소요시간을 최대 79% 단축했다.
1 / 2
자세히 보기
프로젝트 규모가 커지며 패키지 수가 증가함에 따라 CI(지속적 통합) 소요시간이 급증하는 문제를 겪었다. 초기 4분대였던 소요시간은 패키지가 9개로 늘어나며 12분까지 증가했다.
이를 해결하기 위해 먼저 패키지 매니저를 yarn에서 pnpm으로 교체했다. pnpm은 symlink를 활용해 전역 캐시 경로(.pnpm-store)를 참조함으로써 불필요한 파일 복사를 줄이고 디스크 I/O를 최적화한다. 이를 통해 의존성 설치 시간을 약 60초가량 단축했다.
또한 모노레포 관리 도구로 turborepo를 도입했다. turborepo는 다음과 같은 핵심 기능을 통해 빌드 효율을 극대화한다.
- Incremental Builds: 변경된 부분만 빌드
- Content-aware hashing: 콘텐츠 기반 해싱을 통한 캐시 관리
- Parallel execution: 작업 병렬 실행
- Remote Caching: 원격 캐시 활용
이러한 최적화를 통해 의존성 및 빌드 캐시 적중 시 기준, CI 소요시간을 최대 **79%**까지 개선할 수 있었다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.