피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Go 언어로의 컴파일러 재작성을 통한 빌드 속도 10배 향상
TypeScript 7 RC: the compiler rewritten in Go, around 10x faster
AI 요약
Context
기존 TypeScript 컴파일러의 JavaScript 기반 처리 구조로 인한 대규모 프로젝트의 빌드 및 LSP 응답 속도 저하 발생. 네이티브 코드 실행 및 병렬 처리 능력의 한계로 인해 개발 생산성 병목 지점 형성.
Technical Solution
- 기존 타입 체크 로직의 구조적 일관성을 유지하며 컴파일러 전체를 Go 언어로 포팅한 설계
- Shared Memory 기반의 병렬 처리를 통해 Parsing, Type-checking, Emit 단계의 동시 실행 구조 구현
- 결정론적 결과 보장을 위해 고정된 Worker 수를 통해 파일 간 의존성을 처리하는 분산 작업 모델 적용
- Parcel 파일 와처를 Go로 포팅하여 node_modules 폴더의 고비용 Polling 방식을 제거한 경량 Watch Mode 구축
- @typescript/typescript6 패키지와 npm alias를 활용하여 런타임 호환성 문제를 해결한 Parallel Change 전략 채택
Impact
- TypeScript 6 대비 빌드 속도 약 10배 향상
- LSP 기반의 자동 완성 및 실시간 에러 표시 응답 속도 대폭 개선
- 기본 4개의 Worker를 제공하며 --checkers 옵션을 통한 CPU 코어 최적화 가능
Key Takeaway
도메인 로직(Type-checking)의 정밀도는 유지하면서 실행 엔진(Language Runtime)을 교체함으로써 시스템의 안정성과 성능을 동시에 확보한 전형적인 플랫폼 현대화 사례.
실천 포인트
1. TypeScript 7 도입 전 6 버전으로 업데이트하여 Deprecated 문법 및 설정 에러 사전 제거
2. CI 환경의 CPU 코어 수에 맞춰 --checkers 옵션을 조정하여 메모리 사용량과 빌드 속도 최적화
3. Linter 등 외부 툴 호환성 이슈 발생 시 npm alias를 통한 버전 병행 운용 검토