바이너리 캐싱이란?
바이너리 캐싱…찾아보니
다양한 환경에서 빌드 및 테스트 실행 속도를 높이는 기능
이 기능은 증분 빌드에 필요한 데이터가 서로 다른 빌드 간에 공유되지 않는 연속 통합(CI) 환경에서는 그다지 적합하지 않다고 합니다.
그래서 개발자들은 복잡한 컴파일 문제를 해결하기 위해 이 데이터를 로컬에서 종종 재설정 합니다. 이는 더 자주 clean builds를 필요로 합니다.
이러한 문제를 해결하기 위해, 바이너리 캐싱 기능을 통해 빌드 과정을 최적화하고, 로컬 개발 및 CI 환경에서의 빌드 시간을 단축시킬 수 있습니다.
여기서 조금 더 찾아보니 캐시 워밍(cache warming) 이라는 작업도 공부한 김에 설명드리겠습니다.
Tuist는 의존성 그래프의 각 대상에 대한 해시를 활용하여 변경 사항을 감지합니다. 이 데이터를 사용하여, 해당 대상에서 파생된 바이너리에 고유 식별자를 할당한다고 하네요. 그래프 생성 시, Tuist는 원래 대상들을 해당 바이너리 버전으로 자동으로 교체합니다.
이 과정을 "워밍"이라고 하며, 로컬 사용이나 팀원 및 CI 환경과 공유하기 위해 Tuist Cloud를 통해 바이너리를 준비하는 것을 포함합니다. 캐시를 워밍하는 과정은 추후에 알려드릴 tuist cache
라는 간단한 명령어로 시작할 수 있습니다.
특히, tuist cache
명령어는 프로젝트 생성 시 필요한 경우 캐시에서 의존성을 자동으로 바이너리 등가물로 대체하여 프로세스를 가속화합니다. 따라서, Tuist는 의존 대상이 사용 가능한 경우 이를 바이너리로 대체하며, 특정 플래그를 사용하여 이 과정에서 특정 대상을 제외시킬 수 있습니다.