느린 pipeline은 생산성(개발자가 피드백을 기다림)과 CI 비용을 해칩니다. build와 test 단계 최적화 — caching, 병렬화, 선택적 실행, 올바른 테스트 전략을 통해 — 은 pipeline을 빠르게 유지하여 빠른 피드백과 효율적인 리소스 사용을 제공합니다.
왜 pipeline 속도가 중요한가
느린 pipeline은 비용이 큼:
→ 개발자가 피드백을 기다림 (생산성 손실, 컨텍스트 전환)
→ 느린 CI는 잦은 통합을 저해 (CI의 가치를 약화)
→ 더 긴 pipeline = 더 많은 컴퓨팅 비용 (CI 분)
→ 빠른 pipeline = 빠른 피드백 = 생산적이고 잦은 통합.
최적화 기법
✓ CACHING — 실행 간 의존성(node_modules, pip, Maven) 캐시 → 매번
재다운로드/재build하지 않음 (종종 가장 큰 이득)
✓ 병렬화 — 독립적인 job/test를 순차가 아닌 병렬로 실행
→ 테스트 스위트를 여러 병렬 runner에 분할
✓ 변경된 것만 build/test — 영향받지 않은 부분 건너뛰기 (증분 build; 영향받은
프로젝트를 감지하는 monorepo 도구)
✓ DOCKER 레이어 캐싱 — 이미지 레이어 캐시; 코드 전에 의존성 build
✓ FAIL FAST — 빠른 검사(lint, 단위 테스트)를 먼저 → 명백한 문제에 빠르게 실패
✓ runner를 적정 크기로; 효율적인 base 이미지 사용
