Monolith Repo

모노리스(모놀리식) 레포는 가장 기본적인 형태로 하나의 Repo안에 모든 서비스나 프로젝트가 서로

존재하는것을 의미합니다.

하나의 레포안에 모듈 라이브러리 DevOps를 공유해 서로가 직접적으로 의존하기 때문에

관심사분리, 설계, 리팩토링이 어려워지며 작은 변경점을 build하려 할때에 모든 프로젝트를

빌드해야하기때문에 엄청나게 많은 시간이 걸립니다.

정말 간단한 프로젝트일경우 모노리스 레포를 사용하는 것도 괜찮다고 생각합니다.


Muliti repo

모노리스의 단점을 없애기 위해서 등장한 방식으로 모든 프로젝트가 자신만의 Repo를 가지며 다른

프로젝트와의 의존성이 적어지며 각각 프로젝트만의 라이브러리, 모듈, 데브옵스를 설정할 수가 있습니다

하지만 새로 프로젝트를 만들 때마다 개발환경, 배포환경을 구성해야 하며 코드의 중복이 발생하며 프로젝트가

늘어나면 관리가 어려워집니다. 제가 알기로는 현재 대다수의 회사의 Repo 형태가 멀티레포로 알고 있습니다.

멀티레포는 기능적으로는 완벽하지만 생산성이 매우 떨어지는 것이 단점입니다.