⭐️ 미리보기
모노레포(Monorepo)는 여러 프로젝트를 하나의 레파지토리에서 관리하는 방식으로, 대규모 프로젝트에서 특히 유용합니다. 공통 모듈을 쉽게 공유하고, 코드의 일관성을 유지하며, 코드 리뷰와 CI/CD 파이프라인을 단순화할 수 있습니다.
모놀리식은 한 곳에 모든 걸 담은 구조이며, 멀티 레포는 프로젝트를 여러 개로 쪼갠 형식을 의미합니다.
멀티레포에서 한 가지 상황을 가정해봅시다. 프로젝트 A와 비슷한 형태의 프로젝트 B를 새로 추가하여야 하는 상황입니다. 새로운 프로젝트 B를 만들기 위해서 아래와 같은 프로세스를 거치게 됩니다.
가정
- 새로운 프로젝트 B 레포지토리를 추가한다.
- CI/CD, Lint, Test, TS 등의 설정을 새로 한다.
- 프로젝트 A에서 비슷한 기능을 라이브러리화하여 프로젝트 B에서 쓰게끔 한다.
- 라이브러리 세팅하는 과정을 다시 소요 (CI/CD, Lint, Test, TS 등의 설정)
위와 같은 프로세스에서 작업이 계속 늘어갈 때마다 문제점들이 생깁니다.
멀티레포의 문제점
- 새 프로젝트 비용이 커진다.
- 프로젝트 간의 공유가 어려워진다.
- 같은 이슈로 인한 수정할 때 각각의 레포지토리에서 커밋을 남겨야 한다.
- 히스토리 관리가 어려워진다.
- 각각의 레포지토리 관리로 인해 DX가 일관적이지 않다.
모노레포(Monorepo)는 여러 프로젝트를 하나의 레파지토리에서 관리하는 방식을 의미합니다.
Turborepo로 모노레포 개발 경험 향상하기
쏘카 프론트엔드 모노레포 - Part1. Code Generator로 프로젝트 세팅 자동화하기