"esbuild와 swc는 타입을 아주 빠르게 지우지만 검사하지는 않아. 그게 역할이야."
무엇을 하는가
Go로 만든 esbuild와 Rust로 만든 swc는 TypeScript를 JavaScript로 밀리초 단위에 변환하는 빠른 도구야. 타입 검사는 하지 않고 표기만 지워 출력해.
타입 검사는 전체 그래프를 따라야 하지만 파일 변환은 병렬화하기 쉬워. 출력과 검사를 분리해 변환기는 emit, tsc --noEmit은 타입 검사를 맡기면 속도와 안전을 함께 얻어.
어디에 들어 있는가
- Vite는 개발 변환에 esbuild를 써.
- Next.js는 swc를 써.
- tsx와 Vitest는 esbuild를 써.
- Bun은 자체 변환기를 써.
직접 쓸 때
esbuild src/main.ts --bundle --outfile=dist/bundle.js처럼 작은 라이브러리, 실험 코드, 서버 번들을 만들 때 직접 사용할 수 있어.
빠른 변환기와 타입 검사 전용 tsc가 현대 TypeScript 빌드 파이프라인의 짝이야. Vite, Next, Bun도 이 분리 모델을 따라.