Mono Repo 개념 정리

less than 1 minute read

최근 Mono Repo의 개념을 바탕으로 모듈 프로젝트를 진행하게 되어 이번 포스트에서는 Mono Repo에 대해 알아보는 시간을 갖을까 합니다.

지금까지 Mono Repo의 기초적인 개념만 알고 있었지 실제 프로젝트에서 도입해볼 기회가 많지 않았습니다. 저또한 NPM 모듈을 개발하면서 기존의 Multi Repo의 ‘하나의 저장소에 하나의 모듈’ 이란 개념으로 모듈 개발을 진행해 왔습니다.

그러던중, 최근 신규 프로젝트를 진행하면서 Lerna라는 버전관리 도구를 도입하게 되었고, 다시한번 Mono Repo의 개념을 정리하게 되었습니다.

Mono Repo 를 한마디로 정의하자면, 분산되어 관리되던 기존의 여러 저장소를 한 저장소에 넣어 한번에 관리하자 입니다. 반대 개념으로 Multi Repo 가 있습니다.
참고] https://en.wikipedia.org/wiki/Monorepo

Mono Repo와 Multi Repo 차이

구분 정의
Mono Repo 분산되어 관리되는 Repository 를 하나의 Repository 안에 넣어서 관리
Multi Repo Package 들을 각각의 Repository 에서 관리



Mono Repo 의 장점 및 단점

장점

  • 하나의 저장소에서 관리하기 쉽다.
  • 코드의 재사용이 간편하다.
  • 의존성을 관리하는 부하가 적다.
  • 쉬운 개발환경 구축 및 빌드, 테스트가 가능하다.
  • 프로젝트 간의 통합 테스트나 코드 검색이 단순해진다.
  • API 와 모든 호출자의 리팩토링을 커밋 하나로 해결할 수 있다.
  • 대규모 코드 리팩토링.
  • 팀간 협업.

단점

  • 최신 의존성을 관리하는 메커니즘이 필요하다.
  • 버전 정보의 손실이 발생할 수 있다.
  • 프로젝트별 보안성이 부족하다.
  • 더 많은 스토리지가 필요하다.

Tags: ,

Categories:

Updated:

 

 

Leave a comment