모노레포 워크스페이스 도구 이해하기 (공유 패키지와 증분 빌드)
· 약 5분
모노레포에서 공통 코드를 공유하고, 바뀐 부분만 다시 빌드하게 해 주는 워크스페이스 도구가 무엇이고 어떻게 나뉘는지 정리합니다.
결론부터 말하면, 모노레포 도구는 두 층위로 나뉩니다. 패키지 매니저의 워크스페이스가 공유 패키지를 연결하고, 빌드 오케스트레이터가 바뀐 부분만 다시 빌드(증분 빌드)와 캐시를 담당합니다.
워크스페이스 도구란
워크스페이스 도구는 한 레포 안의 여러 패키지를 함께 관리하게 해 주는 도구입니다. 공통 코드를 여러 앱이 나눠 쓰게 연결하고, 무엇을 다시 빌드할지 정리해 줍니다.
요리에 비유하면, 여러 메뉴(앱)가 공용 재료 창고(공유 패키지)를 함께 쓰고, 재료가 바뀌면 그 재료를 쓰는 메뉴만 다시 조리하는 것과 같습니다. 창고 연결과 "다시 조리할 메뉴 고르기"는 서로 다른 일입니다.
두 층위로 나눠 보기
도구를 두 층위로 나눠 보면 역할이 분명해집니다.
| 층위 | 역할 | 대표 도구 |
|---|---|---|
| 패키지 매니저 워크스페이스 | 공유 패키지를 연결(의존성) | pnpm/yarn workspaces, uv, Cargo, Go workspace |
| 빌드 오케스트레이터 | task 그래프 + 증분 빌드·캐시 | Turborepo, Nx |
둘은 함께 씁니다. 패키지 매니저가 "무엇을 공유하는지"를 알고, 오케스트레이터가 "무엇을 다시 만들지"를 정합니다.
