
뱅크샐러드 Web chapter에서 GitHub Action 기반의 CI 속도를 개선한 방법
두줄요약
GitHub Action에서 의존성 캐싱과 job 병렬화로 CI 대기 시간을 줄였습니다. 변경 파일 검사와 Nx 영향 분석으로 불필요한 lint·test·build를 줄였습니다.
문제 상황
- Node.js·npm 기반 CI에서 의존성 설치에 긴 시간 소요
- lint, test, build의 순차 실행으로 결과 확인 지연 및 앞선 실패에 따른 후속 결과 미확인
해결 방법
package-lock.json해시를 키로node_modules를 캐싱하고 캐시 미스 때만npm ci수행- lint, test, build를 별도 job으로 분리해 병렬 실행
git diff, JestchangedSince, Nxaffected로 변경 또는 영향 범위만 검사·빌드
성능/운영 포인트
- 의존성 캐싱 후 설치 시간 1분 8초에서 21초 수준으로 단축
- 변경 파일 대상 검사로 lint 26초, test 2분 18초 감소 사례
- 브랜치 첫 커밋의 캐시 부재, 캐시 저장 용량·보존 기간, job 증가에 따른 실행 비용 고려
적용해볼 점
- 순서 의존성이 없는 CI 단계의 병렬 job 구성
- 모노레포 또는 다중 프로젝트 환경에서 Nx 캐시와 영향 분석 위임




