[번역] Turborepo Remote Caching

young_pallete·2022년 8월 4일
0

turborepo

목록 보기
2/2
post-thumbnail

🌈 시작하며

오늘도 마이크로프론트엔드 + 모노레포로 작업을 진행하기 전에, 요새 쓰고 있는 터보레포를 공부하고자 번역 글을 써요!

아무래도 캐시가 아직은 익숙치 않다 보니...🥲
좀 더 원리를 이해하고자 공식문서를 읽어 볼 겸, 누군가에게 도움을 주기 위해 번역 글을 남깁니다 👐🏻


📄 본론

터보레포의 중요한 핵심 키🔑는 바로, lazy하고 효율적이라는 것입니다. 그것은 이미 완료된 작업들을 다시는 반복해서 실행하지 않으려 하고, 최대한 적은 작업을 하려 하기 때문이죠.

이때, 당신의 터보래터는 당신의 로컬 파일 시스템에 있는 태스크들을 캐싱합니다. (다시 말하자면, 당신이 single-player mode일 경우에 말이죠)

그러나, 당신의 CI나, 동료들에 의해 수행된, 계산을 요구하는 작업들의 이점을 가져가는 방법이 있다면 어떨까요? (다시 말하자면, co-op multiplayer mode일 경우요!)

머신에 걸쳐 단일 캐시를 전송하고 공유하는 방법이 있다면요?
음... 마치 당신의 터보레포 캐시를 위한 Dropbox가 있다고 보면 되겠네요. 🤔

원격 캐싱은 이러한 대화 속에서 나왔어요!

터보레포는 추가적인 스피드 증가를 위해, 머신에 걸쳐 캐시 아티팩트를 공유하기 위한 Remote Caching이라고 알려진 기술을 사용했어요! 이것은 터보레포가 내용을 주소로 불러낼 수 있는 저장 방식을 사용하기 때문에 가능하답니다. 👐🏻

잠깐!
Remote Caching은 터보레포의 강력한 기능은 맞아요. 그렇지만, 큰 이점에는 책임도 따릅니다.
환경 변수를 다루는 데 있어서 정확하게 캐싱이 되는지 체크를 꼭 해주세요. 또한, 터보레포는 로그를 마치 아티팩트처럼 다루고 있기에, 당신이 콘솔에 무엇을 찍고 있는지를 살펴 보셔야 합니다!

Vercel

(역시 팔은 안으로 굽는군요 🙇🏻)

로컬 개발환경

당신의 원격 캐시를 로컬에서 연결해주고 싶나요?
그러면, Vercel 계정으로 들어가, Turborepo CLI을 해주셔야 합니다!

npx turbo login

그 다음에는, 이어지는 커맨드를 실행함으로써 당신의 터보레포에 원격 캐시를 연결시켜줄 수 있답니다.

npx turbo link

일단 작동된다면, turbo run을 통해 당신이 현재 캐싱하고 있는 것과, 태스크 실행 중인 패키지나 애플리케이션을 변경시켜봅시다.

이를 확인하기 위해서는, 당신의 로컬 캐시를 삭제해줘야 해요. 따라해보세요!

rm -rf ./node_modules/.cache/turbo

그다음에 같은 빌드를 다시 실행시켜봐요. 만약 작동이 올바르게 된다면, turbo는 로컬에서 작업을 진행하고 있는 것이 아니어야 해요. 원격 캐시로부터 로그와 아티팩트 둘 다 다운로드를 한 후에 다시 작동된 것이죠!

Vercel 빌드에 대한 Remote Caching

만약 Vercel에서 당신의 앱을 빌드하고 올리는 중이라면, Remote Cachingd는 당신이 turbo를 사용하기만 하면 자동으로 당신에 맞춰서 세팅을 해줄 거에요. 🥰
대신 당신은 turbo와 함께 빌드하기 위한 빌드 세팅을 업데이트할 필요가 있겠어요.

이는 Vercel documentation에서의 지시 사항을 참조해주세요! 🔍

Artifact 통합과 인증 확인

터보레포에서는 원격 캐시에 업로드 하기 전에, 비밀키에 대한 아티팩트를 서명할 수 있어요.
터보레포는 당신이 제공하는 비밀키를 사용하는 아티팩트 서명에 대해 HMAC-SHA256를 사용합니다.
터보레포는 당신이 다운로드를 했을 때 원격 캐시 아티팩트 통합 및 인증에 대한 확인을 할 거에요. 이 확인에 실패한 아티팩트는 무시되고, 캐시 미스로서 다뤄집니다.

{
  "$schema": "https://turborepo.org/schema.json",
  "remoteCache": {
    // Indicates if signature verification is enabled.
    "signature": true
  }
}

Remote Caches 사용자 설정

당신은 원격 캐시를 스스로 호스트할 수 있어요. 또는 터보레포 원격 캐싱 서버 API에 따르는 한 다른 remote caching 서비스 제공자가 될 수도 있답니다.

당신은 호스트명을 정의하는--api와 bearer token을 정의하는 --token 플래그를 명시함으로써 remote caching을 설정하고 제어할 수 있습니다.

turbo run build --api="https://my-server.example.com" --token="xxxxxxxxxxxxxxxxx"

당신은 요청과 엔드포인트에 관하여 여기서 알 수 있을 거에요.

profile
People are scared of falling to the bottom but born from there. What they've lost is nth. 😉

0개의 댓글