Yarn, Lerna, NX, Turborepo와 같은 모노레포 툴이 존재

image.png

image.png

turborepo란

터보레포는 프로젝트의 빌드 작업(린트, 빌드, 테스트 등)들을 최적화시켜주는 것에 목적을 둔 빌드 시스템이다.

모노레포를 사용할 때의 가장 큰 문제는 빌드 시 워크스페이스 각각의 작업(린트, 빌드, 테스트 등)들이 나누어져 있다 보니 한 번 빌드를 시작하면 너무 많은 작업들이 몰릴 수 있다는 것이다.

이와 같은 상황을 막기 위해 터보레포는 모든 작업들을 캐싱하여 빌드 과정 내의 작업 중복을 막고, 각 작업들의 진행 순서를 효율적으로 분배해 최적화해준다.

Turborepo의 주요 미션은 모노레포 환경에서 개발자가 조금 더 쉽고 빠르게 개발할 수 있도록 빌드 도구를 제공하는 것

적용하기

설치

npx create-turbo@latest turbo-repo
Need to install the following packages:
[email protected]
Ok to proceed? (y)
? Which package manager do you want to use? pnpm

>>> Creating a new Turborepo with:

Application packages
 - apps/docs
 - apps/web
Library packages
 - packages/eslint-config
 - packages/typescript-config
 - packages/ui

>>> Success! Created your Turborepo at turbo-repo

image.png

구조

apps

실제 app 프로덕트 폴더