본문 바로가기
📍ETC/🜸 기타지식

Multi-repo와 Mono-repo

by 예리Yelee 2022. 3. 19.
반응형

회사에서 Mono-repo 구조로 작업해야 될 일이 생겼는데,,,,
Mono-repo가 뭐죠? ^^;...

넹 그래서 알아보겠습니다


1. Multi-repo

한마디로 쉽게 설명하자면 한 패키지당 하나의 repository를 가지고 있는 것입니다 (어려움;;)
회사에서 각 서비스별로 repository를 생성한 다음에 빌드 후 하나의 웹 애플리케이션을 만들고 있는데
이게 바로 Multi-repo 구조이다! 인 것 같다..

장점으로는 build 속도가 아무래도 줄어들겠죠...?
하나의 웹 애플리케이션 소스가 한 레포 안에 들어있다면 빌드할 때마다 상당 시간 소요될 텐데
이렇게 패키지별로 쪼개어져 있다면 각 레포지토리마다 빌드 시간이 줄어드는 건 당연,, ^^
그리고 여러 명이 하나의 레포에서 작업할 경우 충돌이 발생할 수 있는데 멀티 레포로 작업할 경우
코드 충돌 가능성도 작아진다는 장점이 있습니다!

단점으로는 각 레포지토리마다 공통된 설정을 해줘야 된다는 점. 그리고 코드가 중복될 가능성이 높겠죠?
또 어떠한 이슈가 발생했을 때 하나의 레포지토리에서 처리가 가능하다면 다행이겠지만 그게 아니라면... 네.. 불편하겠죠

그럼에도 불구하고 장점이 더 많아서인지 대부분 Multi-repo 구조로 작업하는 것 같습니다!

2. Mono-repo

모노 레포는 멀티 레포와 반대 개념입니다 하나의 레포지토리에서 여러 개의 패키지를 관리하는 것..
회사에서는 Storybook을 이용해서 공통 컴포넌트를 만드는 과정에서 모노 레포 방식을 선택했습니다

장점은 멀티 레포와 반대라고 보시면 돼요
공통된 설정을 한 번만 해주면 되고, 코드 중복 가능성도 현저히 낮아집니다
단점도 멀티 레포와 반대겠죠..?

회사에서는 Mono-repo를 구성하기 위해 lerna를 사용하는데요
다들 이 lerna로 Mono-repo를 구성하는 것 같습니다..

하나의 repository안에 core라는 패키지와 icons 패키지가 존재합니다
이 두 개의 패키지를 합쳐 storybook을 생성하고 있는 이 구조..

Mono-repo...
이상 의식의 흐름대로 정리 끝

반응형

댓글