하나의 기업에서 여러 개의 서비스를 운영 중인 상황을 가정해보자.
원래는 하나의 레포에서 하나의 서비스만을 관리 하지만 작업을 하다보면 때때로 서로의 레포에서 작업을 해야하는 상황이 있다.
현대의 개발 환경에서는 여러 프로젝트와 라이브러리가 상호 의존하면서 동작하는 경우가 많다. 이런 복잡한 환경에서 모노레포를 이용하면 통합적인 관점에서 코드의 일관성을 유지하고, 팀 간의 협업을 강화할 수 있다. 또한, 하나의 저장소에서 전체 코드베이스를 관리함으로써 리팩토링이나 대규모 변경 사항을 더욱 효과적으로 처리할 수 있다. 이러한 장점들로 인해 모노레포는 현대 프론트엔드 개발 트렌드 중 하나로 자리 잡았다.
재사용되는 UI 컴포넌트나 유틸리티 함수가 있을 때, 모노레포를 사용해서 한 번에 관리할 수가 있다.
위 이미지를 보면 Monolithic과 Modular의 차이를 단적으로 보여주고 있다. Modular App Repo에서는 라이브러리 코드, 재사용할 수 있는 컴포넌트, 그리고 이를 이용해서 페이지를 만들어내고 있다. 예로 상품 페이지와 어드민 페이지가 분리된다면 저 App Routable Components가 두 개가 된다고 생각하면 될 것이다.
여기서 App을 구성하는 페이지도 하나의 패키지로, 재사용할 컴포넌트들을 담은 것들을 또 하나의 패키지로, 라이브러리 코드들도 하나의 패키지로 구분해서 사용할 수 있다.