모노레포(Mono Repo) vs 멀티레포(Multi Repo)

림예·2024년 5월 11일

CS

목록 보기
6/19

모노레포

프로젝트별로 레포지토리를 생성하여 만드는 멀티레포와 반대되는 방식으로, 버전 관리 시스템에서 두 개 이상의 프로젝트 코드가 동일한 저장소에 저장되는 소프트웨어 개발 전략이다.

장점

  • 코드 리뷰 향상
  • 최신화 상태 유지
  • 전체 코드의 일관성 (동일한 코드 컨벤션)
  • 공유 라이브러리
  • 단일 버전 관리 (버전 충돌 최소화)

단점

  • 개발환경 구성의 어려움
  • 높은 학습 곡선
  • 코드 충돌 위험 (동시 작업)
  • 코드 관리 복잡성
  • 배포 복잡성




멀티레포(폴리레포)

멀티레포란 말 그대로 Repository를 각 도메인 및 기능 시스템 단위로 생성하여 운영하는 것을 말하는데, 우리가 보통 프로젝트별로 레포지토리를 생성하여 만든 것을 말한다.

각 프로젝트가 고유의 저장소를 가지게 됨으로써, 다른 프로젝트와의 의존성을 가지고 있지 않아 독립적으로 빠르게 개발이 가능하며 비교적 크기가 가벼워 프로젝트 관리 면으로 수월하다.

장점

  • 모듈화
  • 빠른 배포
  • 더 나은 협업(충돌 최소화)
  • 독립적인 테스트
  • 쉬운 의존성 관리

단점

  • 복잡한 버전 및 의존성 관리
  • 동일 코드 중복(유지보수성이 낮아질 수 있음)
  • 코드 컨벤션 통일 어려움
  • 각 프로젝트별로 사용하는 모듈 및 버전 스택이 달라질 수 있음
  • 오랫동안 건드리지 않은 프로젝트의 관리가 힘들어지며, 시간이 지날수록 해당 프로젝트의 Legacy 파악이 어려워질 수 있음
  • 팀원별 컨텍스트 공유가 서로 원활하지 않을 수 있음








profile
Think big 🌏

0개의 댓글