pile·
프론트엔드·여기어때 (GC컴퍼니)여기어때 (GC컴퍼니)·

CMS 모노레포 개선기: 빌드 시간 단축부터 번들 최적화까지

문제Spring Boot + Next.js 10여 개 앱을 단일 JAR로 배포하는 CMS 모노레포에서 매 배포가 약 14분 걸려 생산성을 깎았다.
접근`.dockerignore` 와 빌드 이미지 캐시로 초기 단계를 줄이고 TurboRepo concurrency=1 → 3 병렬 빌드로 전환했다. `turbo.json` 의 inputs/outputs를 정교화해 테스트 파일 변경 시 캐시를 유지하고, 1차 병렬 실패 시 concurrency=1 자동 재시도로 메모리 부족을 흡수했다. 번들은 AI 도구로 lodash 사용처를 분석해 네이티브 대체 → 개별 import → 미사용 의존성 제거 순으로 적용했고, Lottie도 SVG light 빌드로 교체했다.
결과배포 시간이 약 14분에서 약 8분으로 약 43% 단축됐고, 공유 패키지 isEqual 개별 import 한 줄로 10여 개 앱 lodash 청크가 299KB → 164KB로 줄어 총 약 1.6MB 번들이 절감됐다.
여기어때 (GC컴퍼니)
여기어때 (GC컴퍼니) 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2
  2. 프론트엔드·vercel-blogVercel Blog·

    Vercel과 Shopify의 Hydrogen 전면 재설계

    Vercel과 Shopify가 Hydrogen을 오픈소스·런타임 무관 프레임워크로 전면 재설계했다. 기존 Hydrogen은 빠른 헤드리스 스토어프런트 배포를 지원했지만 플랫폼 종속성이 있었고, 새 버전은 Svelte, Nuxt, Next.js 등 어느 JavaScript 프레임워크에서도 동작한다. 3레이어 아키텍처(코어/클라이언트/서버)로 재구성하면서 각 레이어가 명확한 역할을 분담한다.

    #react#nextjs#i18n+2
  3. 프론트엔드·토스 SLASH토스 SLASH·

    es-toolkit: 사내 소형 라이브러리에서 글로벌 프로젝트로

    토스 프론트엔드 팀이 사내 공유 유틸리티 라이브러리를 발전시켜 만든 es-toolkit이 주간 npm 다운로드 2,000만 건을 넘기며 글로벌 오픈소스 프로젝트로 자리 잡은 과정을 다룬다. lodash의 구조적 한계를 넘어 현대 웹 개발 환경에 최적화된 유틸리티 라이브러리를 처음부터 설계한 경험을 정리한다.

    #lodash#open-source#tree-shaking+2