본문 바로가기

Daily/Today

모노레포

 

모노레포를 이해하려면 이전의 개념들에 대해 이해해야 한다.

 

모놀리식 앱

모놀리식 애플리케이션(monolithic application)은 단독으로 배포 가능한 프로그램에 모든 기능을 포함

보통 애플리케이션을 만들 때 선택할 수 있는, 가장 간단한 시작 형태

멀티레포

멀티레포 구조는 폴리레포(polyrepo) 구조

각 모듈은 멀티레포 구조에서 고유한 저장소가 있는 독자적 프로젝트

각 프로젝트는 자율성이 높으며 독립적인 개발, 린트, 테스트, 빌드, 게시, 배포 파이프라인이 존재

멀티레포는 현재 대부분의 애플리케이션을 개발하는 표준적인 방법

업계는 팀의 자율성이라는 큰 이유 때문에 이 방식을 선호

 

멀티레포의 문제

  • 번거로운 프로젝트 생성
  • 패키지의 중복 코드 가능성
  • 관리 포인트 증가
  • 일관성 없는 개발자 경험(DX)
  • 다른 패키지의 변경 사항 파악
  • 교차 저장소의 리팩터링 비용

 

 

모노레포

모노레포란 버전 관리 시스템에서 두 개 이상의 프로젝트 코드가 동일한 저장소에 저장되는 소프트웨어 개발 전략

 

모노레포의 특징

모노레포(monorepo) 구조는 두 개 이상의 프로젝트가 동일한 저장소에 저장되는 소프트웨어 개발 전략

앞선 예시의 분리된 모듈들은 모노레포에서 여전히 독자 프로젝트로 존재하지만 저장소는 같은 곳을 사용

 

 

모노레포가 해결하는 멀티레포의 문제

  • 더 쉬운 프로젝트 생성
  • 더 쉬운 의존성 관리
  • 단일화된 관리 포인트
  • 일관된 개발자 경험 제공
  • 프로젝트들에 걸친 원자적 커밋
  • 서로 의존하는 저장소들의 리팩터링 비용 감소

'Daily > Today' 카테고리의 다른 글

REST 외 다양한 API  (0) 2024.07.01
Lotti Animation  (0) 2023.07.17
Typescript 에서 Class문법 사용하기 + Next.js 시작  (0) 2023.06.07
Main 업데이트 및 TypeScript  (0) 2023.06.03
TodoApp 회고  (0) 2023.04.13