개발자
최근에 회사에 모노레포 도입하려고 터보레포에 대해 학습하고 있습니다. 공식문서 보면 빌드도 병렬적으로 실행할 수 있고 원격 캐시를 통해 변경된 코드에 대한 프로젝트만 빌드가 가능하다는 내용을 봤습니다. 공식문서 앞부분을 학습해 봤을 때 제가 드는 생각은 멀티 레포로 운영되는 하나의 프로젝트 코드를 수정하고 빌드 후 배포하는 시간보다 터보 레포로 빌드하고 배포하는 시간이 대체적으로 더 빠를 것이라 생각듭니다. 예를들어 모노레포에서 lint나 공용으로 사용하는 ui컴포넌트는 packages/ 에서 관리하고 프로젝트 코드는 app/project1의 구조의 형태를 가지고 있다고 가정했을 때 case1. 린트 코드 한 줄 수정하고 배포 - 터보레포: 린트 수정한 프로젝트에 대해서만 빌드 - 멀티레포: 프로젝트에 전체 코드에 대한 빌드가 실행 case2. 한번에 린트, 공통ui, 특정 프로젝트 코드 수정하고 배포 - 터보레포: 병렬적으로 배포해서 빠른 배포 - 멀티레포: case1과 같이 전체 코드에 대한 빌드가 실행해서 case1과 빌드시간이 비슷하다 개발은 next.js로 하고 vercel에서 배포하고 있습니다. 제가 위에 작성한 case처럼 터보레포가 빌드시간이 더 빠르게 될까요?? 추가로 next.js프로젝트 vercel에 배포했을 때 캐시전략을 사용할 수도 있는지도 궁금하네요. redeploy할 때만 캐시를 사용할지 선택할 수 있는 것만 알고있습니다. 물론 개발자가 설정한 캐시 전략과 경우에 따라 다르겠지만 대체적으로 어느 방식이 더 빠른지 궁금합니다.
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 04월 01일
터보 레포(Turbo Repo)는 Vercel에서 만든 모노레포용 빌드 시스템으로, 병렬화된 빌드 및 테스트 작업, 증분 빌드, 그리고 원격 캐싱과 같은 기능을 제공합니다. 이러한 기능들로 인해 Turbo Repo가 멀티레포 대비 몇 가지 장점을 가집니다. 1. **병렬화된 빌드 및 테스트:** 개별 패키지 간의 의존성이 없는 경우 각 패키지를 동시에 빌드하고 테스트하여 전체적인 시간을 줄일 수 있습니다. 2. **증분 빌드:** 코드 변경이 발생한 경우 해당 패키제만 다시 빌드하는 방식으로 불필요한 작업의 반복을 줄여줍니다. 3. **원격 캐싱:** 한 번 빌드한 결과를 원격에서 캐싱하여 재사용하는 것으로, 반복되는 같은 작업에 대해 속도를 향상시켜줍니다. 따라서 Turbo Repo가 멀티레포 보다 빠른 시간 내에 프로젝트를 컴파일하고 배포할 수 있는 가능성이 큽니다. 위에서 언급한 기능들이 모두 제대로 활용될 경우, 특히 병렬 빌드는 여러 프로젝트의 빌드를 동시에 처리할 수 있으므로 시간을 상당히 단축시킬 수 있습니다. Vercel은 배포 과정 중에서 캐싱 전략을 사용합니다. 다만 Vercel에서 제공하는 캐싱 전략은 주로 결과물에 대한 캐싱인 반면, Turbo Repo는 빌드 과정 자체를 개선하기 위해 설계된 것이라는 점에서 차이가 있습니다. 따라서 이 두 방식을 같이 활용한다면 더욱 효율적인 빌드 및 배포 프로세스를 가질 수 있을 것입니다. 특정 상황에 따른 비교나 세부적인 설정 방법 등은 실제 Turbo Repo를 사용하면서 직접 경험하거나 Vercel의 공식 문서와 커뮤니티를 통해 확인하시는 것이 가장 좋습니다. 모든 개발환경에서 일관되게 동일한 결과를 보장하기 어렵기 때문에 실제 사용환경과 맞추어 테스트해보고 최적화하는 작업이 필요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!