본문 바로가기
Infra2026년 6월 19일2분 읽기

GitHub Actions가 느리다 — 캐시로 빌드 시간 줄이기

YS
김영삼
조회 293
GitHub Actions가 느리다 — 캐시로 빌드 시간 줄이기

핵심 요약

CI가 느린 가장 큰 이유는 매 실행마다 의존성을 새로 설치하기 때문이다. actions/setup-node의 내장 캐시나 actions/cache로 의존성·빌드 산출물을 캐싱하고, 도커는 레이어 캐시(GHA cache/registry)를 쓰면 시간이 크게 준다.

1. 의존성 캐시

- uses: actions/setup-node@v4
  with:
    node-version: 22
    cache: 'npm'        # package-lock 기준 자동 캐시
- run: npm ci

2. 추가 단축

대상방법
빌드 산출물actions/cache로 키 지정
도커 레이어buildx + cache-from/to
테스트변경 영향 범위만 실행

3. 함정

  • 캐시 키가 너무 광범위하면 stale, 너무 좁으면 적중 안 됨 — lock 파일 해시를 키로
  • npm install 대신 npm ci(lock 고정·캐시 친화)
  • 캐시 용량·만료 한도가 있다 — 큰 캐시 남발 주의

자주 묻는 질문

캐시를 걸었는데 적중이 안 돼요.

키가 매번 달라지면 적중하지 않습니다. lock 파일 해시 기반 키를 쓰고, restore-keys로 부분 일치 폴백을 두세요.

npm install과 npm ci 중 뭐가 낫나요?

CI에선 npm ci가 권장입니다. lock 파일을 정확히 따르고 node_modules를 깨끗이 설치해 재현성과 캐시 효율이 좋습니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록