괴발개발 성장기

Study/개념공부

모노레포(Monorepo)란? 개념부터 장단점, 멀티레포와의 비교 총정리

지니유 2026. 4. 29. 10:15
728x90

 

 

 

최근에 회사에서 워드프레스로 사용한 홈페이지를 자체 개발로 바꾸기 위해서

프론트, 백엔드 서비스를 만들었다. 

 

회사를 소개하는 홈페이지라서 따로 로그인이 있는건 아니다.

그래서 모노레포방식으로 진행을 했다.

 


**모노레포(Monorepo)**는 'Monolithic Repository'의 줄임말로, 두 개 이상의 서로 다른 프로젝트나 패키지의 코드를 단일 버전 관리 저장소(Repository)에 함께 저장하고 관리하는 소프트웨어 개발 전략입니다.

구글(Google), 메타(Meta), 마이크로소프트(Microsoft)와 같은 대형 테크 기업들이 수십억 줄의 코드를 하나의 저장소에서 관리하는 것으로 잘 알려져 있으며, 최근에는 규모에 상관없이 많은 개발 팀에서 도입하고 있습니다.

 

모노레포의 주요 장점

  • 코드 공유 및 재사용성 향상: 공통으로 사용하는 유틸리티 함수나 UI 컴포넌트를 별도의 패키지로 만들어 여러 프로젝트에서 쉽게 가져다 쓸 수 있습니다.
  • 단일 출처 (Single Source of Truth): 의존성(Dependency) 관리가 한 곳에서 이루어지므로, 서로 다른 프로젝트에서 각기 다른 버전의 라이브러리를 사용하여 발생하는 충돌을 방지할 수 있습니다.
  • 원자적 커밋 (Atomic Commits): 핵심 라이브러리의 코드를 수정할 때, 그 라이브러리를 의존하는 다른 프로젝트들의 코드도 한 번의 커밋으로 동시에 수정하고 테스트할 수 있습니다. 대규모 리팩토링이 훨씬 안전해집니다.
  • 팀 간 협업 용이: 다른 팀의 코드를 쉽게 검색하고 열람할 수 있어 사일로(Silo) 현상을 줄이고 코드 리뷰가 수월해집니다.

모노레포의 단점 및 한계

  • 저장소 크기 증가: 프로젝트가 커질수록 저장소의 용량도 방대해져 코드를 처음 클론(Clone)하거나 빌드하는 데 시간이 오래 걸릴 수 있습니다.
  • 권한 관리의 복잡성: 단일 저장소이기 때문에 특정 프로젝트에 대해서만 접근 권한을 제한하기가 기술적으로 까다롭습니다.
  • 도구 학습 곡선: 모노레포를 효율적으로 운영하려면 빌드 속도 최적화 및 의존성 분석을 위해 Nx, Turborepo, Lerna, Bazel과 같은 전문적인 빌드 도구 도입이 필수적이며, 이에 대한 학습이 필요합니다.

 

모노레포 vs 멀티레포 (Polyrepo) 비교

특징 모노레포 (Monorepo) 멀티레포 (Multi-repo / Polyrepo)
코드 위치 하나의 저장소에 모든 프로젝트 통합 프로젝트별로 개별 저장소 사용
의존성 관리 일관된 단일 버전으로 관리하기 용이함 각 저장소마다 개별적으로 버전 관리
리팩토링 여러 프로젝트에 걸친 변경을 한 번에 커밋 각 저장소마다 개별적으로 커밋 및 PR 생성
빌드 도구 Nx, Turborepo 등 전문 도구 설정 필요 기본 도구만으로 비교적 단순하게 구성 가능
저장소 크기 방대해질 수 있음 (성능 이슈 발생 가능) 각 프로젝트 크기만큼 작고 가벼움

 


 

 

프로젝트 자체가 더이상 개발할 가능성이 적고

수정을 해도 문구정도여서 모노레포를 선택해서 진행했습니다.

 

728x90