모노레포 구조는 두 개 이상의 프로젝트가 동일한 저장소에 저장되는 소프트웨어 개발 전략이다. 즉 하나의 레포지토리에서 여러개의 프로젝트가 들어있는 것이다.
단순히 여러 프로젝트가 하나의 저장소를 사용한다고 해서 모노레포라고 하긴 어렵다. 모노레포에서는 프로젝트 사이에 의존성이나 같은 제품군이거나 하는 관계가 존재해야한다. 그리고 모노레포가 이러한 관계를 효율적으로 관리해주는 것이다.
PolyRepo (MultiRepo)
우리는 일반적으로 하나의 레포지토리 안에 하나의 프로젝트로 구성되어 있는 폴리레포 (Poly Repo) 방식을 사용하고 있다. 멀티레포 방식은 독립적이여서 다른 프로젝트의 영향을 받지 않고 빠르게 개발이 가능하지만 여러 문제점이 있다.
모노레포는 위와 같은 폴리레포의 문제점을 해결 할 수 있다.
위 설명대로라면 모노레포가 멀티레포보다 나아 보이지만 항상 그렇지는 않다. 중요한건 프로젝트 사이의 관계이다!
구글이 모노레포를 어떻게 왜 사용하는지에 대한 문서 : https://dl.acm.org/doi/pdf/10.1145/2854146
Turborepo로 모노레포 개발경험 공유한 blog : https://engineering.linecorp.com/ko/blog/monorepo-with-turborepo
모노레포 구축 사례 : https://helloinyong.tistory.com/334
참고자료 : 모노레포의 문제점,모노레포 개념1,모노레포 개념2