목록 보기
모노레포 이렇게 좋은데 왜 안써요?
프론트엔드

모노레포 이렇게 좋은데 왜 안써요?

무신사
무신사
2023년 9월 6일

두줄요약

여러 레포지토리로 분산된 프론트엔드 서비스를 모노레포로 통합한 사례를 소개했습니다. 공통 컨벤션과 패키지 공유로 생산성과 유지보수성이 크게 향상되었습니다.

문제 상황

  • 10개 이상 서비스가 멀티 레포지토리로 분산되어 컨벤션, 린트 환경, 라이브러리, 코드 패턴이 제각각인 상태
  • 신규 서비스 생성 시 환경 세팅과 MDS 컴포넌트 재구현이 반복되는 구조
  • 공통 정책 변경 시 여러 레포지토리 담당자에게 각각 수정 요청해야 하는 운영 비효율

원인 분석

  • 서비스별 레포지토리 분리로 인해 코드와 환경의 표준화가 어려운 구조
  • 공통 코드와 정책이 흩어져 있어 버전 통일과 히스토리 관리가 어려운 상태
  • 담당자 외 개발자가 작업할 때 진입 비용과 온보딩 비용이 높은 상황

해결 방법

  • 모노레포로 전환해 여러 서비스와 공통 모듈을 한 저장소에서 관리
  • yarn berry, yarn workspace, PnP, zero-install을 활용해 중복 의존성과 설치 비효율 완화
  • 공통 컨벤션 패키지와 page-modules 구조를 도입해 컨벤션 통일, 응집도 강화, 페이지 간 의존성 제거

성능/운영 포인트

  • 서비스 배포는 독립적으로 유지하면서도 공통 패키지는 함께 관리
  • apps, libs, packages로 역할을 나누어 코드 재사용과 고도화를 분리
  • 버전 통일과 공통 모듈 공유로 공통 작업 공수 80% 이상, UI 작업 시간 50% 이상 감소

다음 읽기

#React 주제를 다룬 다른 회사 글

모노리포 희망편, 절망의 리포가 희망의 리포로 부활하기까지 걸린 1년

토스는 대규모 프론트엔드 모노리포의 의존성 파편화를 해결하기 위해 카탈로그를 도입했습니다. 이를 통해 설치 속도와 개발 경험을 개선하고 최신 플랫폼 변경을 안정적으로 전파했습니다.

토스
토스
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...