멀티레포 vs 모노레포

김준경·2023년 9월 13일
0

SW_knowledge

목록 보기
2/2

모놀리식 아키텍쳐?

모노리스(Monolith) 라고도 부르며, 하나의 서비스가 하나의 거대한 구조를 가질 때 부르는 용어이며, 앱에 사용되는 모든 코드가 들어가 있다. 하지만 한 공간에 모든 코드를 저장하다 보니, 규모가 커지면 커질수록 생산성이 떨어지게 된다.

  • 코드들이 얽혀 있어 사소한 수정에도 많은 자원 소모
  • 신규 개발자의 힘든 코드 해석
  • 힘든 유지보수

이런 단점들 때문에, 마이크로서비스 아키텍쳐가 등장하게 된다.

마이크로서비스 아키텍쳐?

마이크로서비스 아키텍쳐는, 모놀리식 아키텍쳐의 단점을 보완하기 위해 만들어진 패턴으로, 최소한의 공통 모듈만을 두고, 각각의 서비스를 다른 저장소로 관리한다. 이로 인해 개발 속도와, 안정성, 확장성등이 증가하였고, 이를 구현하기 위해 멀티레포 구조를 사용하기 시작했다.

하지만 하나의 서비스를 개발할 때 마다 각각의 저장소에서 다른 버전의 언어, 프레임워크들을 사용하다 보니 의존성 문제도 발생했다.


따라서 개발자들은 위의 두 패턴에서 장점만 챙긴 아키텍쳐를 생각하기 시작했다.

모노레포?

모노레포는 둘 이상을 프로젝트를 동일한 저장소에서 관리하는 소프트웨어 개발전략이다. 그저 한 저장소에 프로젝트를 여러 개 욱여넣는다고 모노레포가 되는 것이 아니라, 각각의 프로젝트들이 서로 공통적인 부분과, 의존성이 있을 때, 이를 하나의 저장소로 관리하는 것이 모노레포이다.

모노레포는 다음과 같은 편의성을 제공한다

  • 쉬운 의존성 관리
  • 쉬운 프로젝트 생성
  • 단일화된 개발환경 관리

모노레포와 멀티레포 모두 각각의 장단점이 있으니 현재 나의 프로젝트에 맞는 아키텍쳐가 뭔지 고민해보고 사용하는편이 좋은것 같다.
profile
프론트엔드개발자가될래요

0개의 댓글