Monorepo · esbuild · SWC · 원격 Mac · 2026

2026 원격 Mac 프론트 빌드 피하기:
esbuild·SWC 병렬 worker, 캐시 디렉터리, Node 힙 파라미터 대조표

2026.04.11 MacWww 엔지니어링 약 7분 읽기

esbuild(Go)와 SWC(Rust)를 Turbo·원격 Mac Runner에 같이 올리면 코어는 바쁜데 벽시계는 안 줄거나, 캐시가 느린 볼륨에 있어 적중이 사라지기 쉽습니다. 표로 GOMAXPROCS·worker, cacheDir, NODE_OPTIONS, 증분을 고정하고 검수 절차를 덧붙였습니다. Rspack·esbuild·Vite·Webpack 캐시·Turborepo 체크리스트. 프론트 블로그··구매(로그인 불필요).

키워드: esbuild · SWC · GOMAXPROCS · cacheDir · NODE_OPTIONS · Turbo · 원격 Mac

01 왜 Monorepo 레벨에서 병렬 예산을 잡아야 하나

esbuild는 GOMAXPROCS, SWC는 CLI·프레임워크 워커가 Turbo 동시성과 곱해집니다. README에 코어 − 2 같은 총예산을 적어 두지 않으면 I/O·스왑만 커질 수 있습니다.

02 대조표: GOMAXPROCS·worker, cacheDir, 힙, 증분

동일 lockfile·원격 1대 기준 출발점.

항목 esbuild (Vite·Rspack 사전 번들 등) SWC (Next, @swc/cli 등)
GOMAXPROCS / worker 예: 12코어에서 export GOMAXPROCS=10. Turbo와 곱해 지속 CPU 한도 내로. GOMAXPROCS 무관. @swc/cli threads·workers 또는 Next 옵션으로 총 워커 ≤ 코어−예약.
cacheDir Vite: node_modules/.vite 또는 설정의 cacheDirSSD로. NFS 루트는 적중·락 이슈. Next: .next/cache. 멀티 앱은 패키지별 캐시 경로를 CI에 화이트리스트.
NODE_OPTIONS (힙) 예: NODE_OPTIONS=--max-old-space-size=8192. OOM 시 먼저 동시성↓, 그다음 10240~12288·스왑 관찰. 동일. 단일 잡 RSS ~70% RAM 이하 권장.
증분 스위치 디스크 증분은 Vite 사전번들·상위 번들러 캐시·--watch외곽에 문서화. .next/cache+버전. 타입체크를 빌드와 분리, Turbo dependsOn으로 해시 안정화.

03 원격 Mac에서의 수용(검수) 단계

공용·전용 Runner 공통 절차.

  • 베이스라인: Node·pnpm·Turbo·디스크(SSD/네트워크)·여유 GB 기록.
  • 콜드/웜: 캐시 삭제 후 전체 → 파일 1개만 수정 후 재빌드. 웜이 짧고 CPU 장시간 100% 평탄이면 I/O·락 의심.
  • 캐시: job이 cacheDir를 매번 지우지 않는지, 키에 호스트 ID 등 불안정 값이 없는지.
  • 회귀: 동일 SHA 세 번, RSS 피크 분산 작게.
  • 게이트: 해시·소스맵·패키지 경계 통과 후 스테이징.

04 정리

esbuild는 GOMAXPROCS·캐시·힙, SWC는 워커·캐시·힙, 공통으로 Turbo 동시성까지 한 예산표로 묶으세요. 로컬이 병목이면 원격 Mac에 동일 Runbook을 옮기고 캐시를 SSD에 두면 머지 대기가 줄기 쉽습니다.

로그인 없이 CTA · 원격 Mac 빌드 가속

Monorepo 전용 노드에서 캐시·동시성을 고정하세요

SSH 접속 후 표의 env를 고정하고 cacheDir를 내장 디스크에 두세요. 도움말·요금·구매는 로그인 없이 가능합니다.

· 구매 · 요금 · 블로그

M4 대여 — 로그인 없음