I spent $4,000 to make TypeScript faster
- TypeScript 언어 서버의 성능 문제, 특히 TRPC와 Zod 같은 추론 집약적인 도구를 사용하는 대규모 코드베이스에서 발생하여 개발 생산성을 저해했습니다. 🐌
- TRPC 개발자 Alex와 연사(Theo)가 TypeScript 성능 전문가 David에게 $4,000를 지불하여 TRPC 코드베이스를 감사했습니다. 💸
- 감사 결과, 문제는 TRPC 자체보다 TypeScript의 깊게 중첩된 매핑 처리 시 발생하는 캐싱 버그에 있었음이 밝혀졌습니다. 🐛
- David는 이 문제를 발견하고, 전설적인 TypeScript 기여자 Andarist에게 전달하여 해결을 요청했습니다. 🤝
- Andarist는 TypeScript 코어에 두 개의 PR을 제출하여 캐싱 문제를 해결했으며, 이 개선 사항은 TypeScript 5.9 베타에 포함되었습니다. 🚀
- TRPC는 코드 생성 없이 백엔드와 프론트엔드 간의 완전한 타입 안전성을 제공하며, 깊은 타입 추론을 통해 개발 경험을 혁신적으로 향상시킵니다. ✨
- TRPC의 중첩된 라우터 구조와 광범위한 타입 추론 방식이 변경 시 전체 재추론을 유발하여 성능 저하의 주요 원인이 되었습니다. 🔄
- 프로젝트 참조(Project References)가 TRPC 프로젝트의 성능 문제를 해결하지 못했던 이유가 TypeScript 내부 캐싱 버그 때문이었음이 드러났습니다. 🧱
- 스폰서 ArcJet은 코드에 직접 통합되는 보안 솔루션(속도 제한, 봇 방어)으로, 개발자 경험과 성능(WASM 바인딩)을 강조합니다. 🛡️
- David는 고성능 유효성 검사기 Archtype의 개발자이자 TypeScript 서버 성능에 대한 깊은 이해를 가진 전문가로, 문제 해결의 핵심 인물이었습니다. 🧠
- Andarist는 Microsoft 직원이 아니면서도 TypeScript에 가장 많은 기여를 한 인물 중 한 명으로, 핵심 버그 수정에 결정적인 역할을 수행했습니다. 🌟