Turborepo로 모노레포 아키텍처 적용하기

박상현·2023년 11월 13일
0

개요

최근 프로젝트에서 디자인 시스템을 구축하였는데 Turborepo를 적용했었다. 그래서 Turborepo가 무엇이고 어떻게 적용했는지 알아보는 글을 쓰게되었다.

Turborepo란?

Vercel에서 인수한 JavaScript, TypeScript 코드를 위해 최적화된 빌드 시스템이다.
모노레포 환경 내에서 개발자가 개발에 더 집중할 수 있도록 빌드 도구를 제공하는 것에 중점을 두고 있다. 다양한 툴을 활용한 고급 빌드 시스템을 구축하는 일련의 복잡한 과정들을 Turborepo가 대신 수행해주기 때문에 개발자가 온전히 개발에 더 집중할 수 있도록 도와준다.

Turborepo는 9가지의 특성을 가지고 있다.

  1. Incremental builds : 작업 상황을 캐싱해두어 이미 계산이 완료된 작업은 건너 뜀
  2. Content-aware hashing : 파일 변경점을 기준으로 변경된 파일만 빌드
  3. Cloud caching : 클라우드 환경에서 빠른 빌드를 제공
  4. Prallel execution : 모든 코어를 사용하여 병렬적으로 작업을 수행
  5. Task pipelines : 최적화를 위해 우선적으로 처리해야할 task를 판단하고 수행 순서를 정렬
  6. Zero runtime overhead : 사용하지 않는 것에 대해서는 비용을 지불하지 않음
  7. Pruned subsets : 빌드에 필수적인 요소만으로 모노레포의 하위집합을 생성해 Paas의 배포 속도를 향상
  8. JSON configuration : 별도의 코드 작업없이 JSON 설정만으로도 터보를 사용가능
  9. Profile in your broswer : 빌드 과정을 시각화하여 과정을 쉽게 확인하고 병목지점을 쉽게 찾을 수 있음

설치해보기

한번 Turborepo를 설치해보자

npx create-turbo@latest

위 명령어를 치면 아래 사진과 같은 텍스트가 뜬다. y를 눌러준다.

그러면 중간에 설치하다가 pnpm, yarn 등등 뭘로 설치할 건지 물을 것이다.
난 yarn을 선택했다.

그럼 아래 같은 사진이 뜰 것이다.

vsc로 실행해서 보면 아래와 같은 폴더구조로 생성된다.

정말 말그대로 개발자가 온전히 개발에 더 집중할 수 있도록 도와주는 것 같다.

실행하면 아래와 같은 사진으로 나온다.

마무리

이렇게 터보레포로 프로젝트를 구축해보았다. 이제 여기서 디자인 시스템을 만들거나 admin, user가 있는 웹 사이트를 만들면 적합하게 모노레포 아키텍처를 활용하여 프로그래밍이 가능할 것이다!

profile
Plus Ultra 👍

0개의 댓글