마이크로소프트의 대표적인 정적 타입 스크립트 언어인 'TypeScript 7.0'의 릴리스 후보(RC) 버전이 베일을 벗었습니다. 이번 7.0 버전은 단순한 기능 추가를 넘어, 컴파일러의 근간을 완전히 통째로 바꾸는 역사적인 아키텍처 전환을 단행했습니다.
핵심 변화, 자바스크립트에서 Go 언어로의 대전환
기존 TypeScript 컴파일러는 TypeScript 자체로 작성되어 자바스크립트 환경 위에서 구동되는 구조였습니다. 이로 인해 대규모 프로젝트에서는 빌드 및 타입 검사 속도가 느려진다는 고질적인 성능 한계가 있었습니다.
마이크로소프트 개발팀은 이를 해결하기 위해 지난 1년간 기존 코드베이스를 구글의 Go 언어로 완전 포팅하는 작업을 진행했습니다. Go 언어 특유의 네이티브 코드 실행 속도와 강력한 공유 메모리 병렬 처리 기술이 결합되면서, TypeScript 7.0은 이전 6.0 버전 대비 최대 10배에 달하는 빌드 속도 향상을 이루어냈습니다.
검증된 안정성과 100% 하위 호환성
코드를 처음부터 아예 새로 쓴 '재작성' 방식이 아니라 기존의 로직을 그대로 Go 언어로 옮기는 '포팅' 방식을 채택했기 때문에, 타입 검사의 내부 논리는 구조적으로 TypeScript 6.0과 완벽히 동일합니다.
이미 마이크로소프트 내부를 비롯하여 블룸버그, 피그마, 캔바, 슬랙, 노션, Vercel 등 글로벌 거대 IT 기업들의 수백만 줄짜리 초대형 코드베이스에서 사전 테스트를 거치며 압도적인 안정성을 증명했습니다. 개발자들은 기존에 신뢰하던 문법과 의미론을 그대로 유지하면서 속도 장점만 고스란히 누릴 수 있습니다.
멀티코어를 극한으로 활용하는 병렬 처리 시스템
TypeScript 7.0은 대규모 프로젝트와 모노레포 환경에서의 효율성을 극대화하기 위해 새로운 병렬 제어 플래그를 도입했습니다.
-
Checker 병렬화 (
--checkers): 파일 간 의존성이 복잡한 타입 검사 단계를 여러 워커 프로세스로 분할하여 처리합니다. 기본값은 4개이며, 개발 장비의 CPU 코어 사양에 맞춰 자유롭게 조절하여 빌드 시간을 단축할 수 있습니다. -
Project Builder 병렬화 (
--builders): 대규모 모노레포 환경에서 여러 개의 독립된 하위 프로젝트들을 동시에 빌드할 수 있도록 지원합니다. -
싱글 스레드 모드 (
--singleThreaded): 자원이 극도로 제한된 CI/CD 빌드 환경이나 디버깅 시에는 컴파일러를 단일 스레드로만 구동할 수도 있습니다.
watch 모드의 전면 개편과 설정 최적화
코드가 변경될 때마다 실시간으로 컴파일하는 --watch 모드가 완전히 새롭게 빌드되었습니다. 유명 번들러인 Parcel의 파일 와처(@parcel/watcher) 기반 기술을 Go 언어 환경에 맞게 이식하여, 수많은 의존성 파일이 얽혀 있는 대형 프로젝트에서도 CPU 자원을 거의 소모하지 않고 완벽하게 실시간 변경 사항을 감지합니다.
아울러 설정 측면에서는 strict(엄격한 타입 검사) 모드가 기본값으로 강제되며, 과거 구형 사양인 target: es5, moduleResolution: node10 등 노후화된 플래그들이 공식 지원 대상에서 제외되어 하드 에러를 발생시킵니다. 웹 생태계를 보다 모던하고 안전한 방향으로 이끌겠다는 개발팀의 의지가 반영된 결과입니다.