AI Briefing

모노리포의 희망편, 절망의 리포가 다시 희망이 되기까지의 1년

·2026.08.10 11:40

핵심 내용

토스는 의존성 버전을 통일하는 카탈로그로 모노리포의 파편화를 해결했다.

1 / 2

자세히 보기

토스는 100명이 넘는 프론트엔드 엔지니어가 하나의 모노리포에서 모바일 제품을 개발하며, React 19와 Next.js 15 등 동일한 개발환경을 유지하고 있다. 덕분에 React Concurrent Mode와 React Server Components 같은 최신 기능을 공통으로 사용하고 코드 공유와 플랫폼 변경사항 전파도 쉬워졌다.

하지만 서비스가 늘어나면서 모노리포 안의 의존성 버전이 제각각으로 갈라졌다. 일부 서비스는 최신 React를 사용했지만, 오래된 서비스는 낡은 라이브러리와 느린 개발환경을 유지해야 했고, 의존성 설치에 캐시가 있어도 1분 이상 걸리는 경우가 있었다.

플랫폼 팀은 문제를 해결하기 위해 모노리포를 여러 저장소로 나누는 폴리리포도 검토했다. 그러나 폴리리포는 설치 속도는 개선할 수 있어도 개발환경 파편화와 공통 코드 업데이트 비용, 플랫폼 라이브러리의 테스트 난이도 문제를 해결하지 못하고 오히려 파편화를 심화할 수 있다고 판단했다.

핵심 원인은 서비스마다 React, 컴포넌트 라이브러리, 상태 관리 도구, TypeScript, ESLint 등 10~20개의 핵심 라이브러리 버전이 달랐다는 점이었다. 대부분의 개발자는 특정 라이브러리가 필요한지는 결정하지만 세부 버전까지 직접 선택하지 않는다는 점에 착안해, 플랫폼 팀은 표준 라이브러리 버전을 제공하기로 했다.

이를 위해 모든 서비스에서 권장하는 표준 버전 묶음을 **카탈로그(Catalog)**로 정의했다. pnpm과 Yarn이 모노리포에서 공통 의존성 버전을 관리하기 위해 제공하는 카탈로그 기능을 활용해 의존성 트리를 단순화하고, 서비스 간 개발환경과 플랫폼 업데이트의 일관성을 높이는 전략이다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.