개념

정의

하나의 대규모 저장소(repository)에 여러 프로젝트나 애플리케이션의 코드를 포함하는 소프트웨어 개발 방식

개념도

Untitled

모노리틱 아키텍처, 멀티 레포, 모노 레포 비교 표

특징/속성 모노리틱 아키텍처 멀티 레포지토리 모노 레포지토리
개념적 일관성 높음 낮음 높음
코드 공유 및 재사용 용이 어려움 용이
빌드 및 배포 통합 용이 어려움 용이
프로젝트 간 의존성 관리 용이 어려움 용이
통합된 버전 관리 용이 어려움 용이
협업과 통합 테스트 편리 어려움 편리
유연성 낮음
(하나의 기술 스택) 높음
(다양한 기술 스택 사용 가능) 높음
(다양한 기술 스택 사용 가능)
큰 프로젝트에서 관리 용이성 어려움 (커다란 코드베이스 관리 어려움) 어려움 (다수의 저장소 관리 어려움) 편리
도구 및 자동화 지원 풍부한 지원 일부 도구들은 멀티레포注意 일부 도구들은 모노레포지토리에 적합함

도구

모노레포 구현을 위한 도구로는 대표적으로 Lerna, Turberepo, Nx 와 같은 것들이 있다.

Lerna

특징:

장점:

단점:

Turborepo

특징: