<aside> 💡 의존성 패키지 또는 재사용되는 파일들을 Cache하여 Workflow 속도를 올릴 수 있습니다.

</aside>

의존성 캐싱

Workflow에서 의존성 패키지들을 재사용하는 경우가 많습니다. 예를 들어, Maven, Gradle, npm, yarn 같은 매니저들은 한 번 다운로드된 의존성들에 대해 로컬 캐시를 사용하곤 합니다.

하지만 Github에서 실행시키는 Workflow는 환경이 처음부터 셋업되는 경우가 많습니다. 따라서 네트워크 사용이 늘어나고, 런타임이 길어지고, 비용도 늘어납니다. 이러한 문제를 해결하기 위해 Github는 의존성 캐싱 기능을 지원합니다.

의존성들을 캐시하려면 Github의 cache action을 사용해야합니다. 이 action은 고유키를 이용하여 캐시를 식별하고 가져옵니다. 자세한 정보는 [actions/cache](<https://github.com/actions/cache>) 를 확인해주세요.

<aside> ❗ Public 저장소에서 Credentials이나 Token 같은 민감한 정보는 캐시하지 말아주세요. 캐시된 정보는 심지어 Fork 된 곳에서도 접근 가능하기 때문에 주의해야합니다.

</aside>

Artifacts와 의존성 캐싱 구분하기

Github에 파일을 저장한다는 점에서 Artifacts와 캐싱은 비슷하지만, 쓰이는 경우를 보면 이 둘이 다르다는 것을 알 수 있습니다.

캐시 접근 제한

버전별

브랜치별

부모 브랜치 접근 제한

master 브랜치에서 생성된 캐시는 모든 PR를 통해서 접근 가능합니다. 만약 feature-b