
데브옵스
200여개 서비스 모노레포의 파이프라인 최적화
두줄요약
토스 프론트엔드의 대규모 모노레포 CI/CD 최적화 사례를 소개했습니다. 병렬 파이프라인과 사전 복제, SSR 번들링으로 빌드와 배포 시간을 크게 줄였습니다.
핵심 내용
- 200여 개 서비스를 운영하는 대규모 프론트엔드 모노레포에서 git push부터 배포까지 5분 수준을 유지한 CI/CD 최적화 사례
- 병렬 파이프라인, Daily Docker Base Image, SSR Standalone Docker Image를 활용한 속도 개선
구조와 흐름
- 서비스 변경 수 증가에 따른 빌드 병목과 컨텍스트 스위칭 문제
- CircleCI Dynamic Configuration으로 서비스별 빌드를 독립 실행해 병렬화
- 사전 복제된 모노레포 Docker 이미지로 checkout 시간을 대폭 단축
- Yarn PnP 환경에 맞춘 SSR 번들 생성으로 이미지 크기와 Pod 초기화 시간 감소
성능/운영 포인트
- 병렬화로 2개 서비스 변경 기준 배포 시간 30분에서 6분 수준으로 단축
- 미리 구운 Docker 이미지로 git checkout 시간을 36분에서 22초로 단축
- SSR 이미지 크기를 4GB에서 약 200MB로 줄여 K8S 배포 속도 개선
적용해볼 점
- 모노레포 규모가 커질수록 빌드 독립성과 리소스 분리가 중요
- checkout 비용이 큰 환경에서는 베이스 이미지를 미리 갱신하는 전략 고려
- Node File Trace와 패키지 매니저 구조에 맞춘 번들링으로 배포 경량화 검토