모노레포를 이해하려면 이전의 개념들에 대해 이해해야 한다.
모놀리식 앱
모놀리식 애플리케이션(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 |