TypeScript 엔진 전격 교체 예고, 6.0 버전이 기존 컴파일러의 '마지막 여정'인 이유

마이크로소프트가 기존 JavaScript 기반 컴파일러의 마지막 버전인 TypeScript 6.0을 발표하며, 향후 Go 언어로 재작성된 7.0 버전으로의 엔진 교체를 예고했습니다. 이번 6.0 버전은 성능 최적화를 위한 7.0과의 동작 정렬, ES2025 및 Temporal API 지원, 그리고 'strict' 옵션의 기본 활성화 등 중요한 아키텍처 변화를 포함하고 있습니다.

AI 요약

마이크로소프트 TypeScript 팀은 현재 npm에서 사용 가능한 TypeScript 6.0 버전이 기존 JavaScript 기술 스택 기반 컴파일러의 마지막 대규모 업데이트가 될 것이라고 발표했습니다. 차기 버전인 7.0부터는 네이티브 성능과 다중 스레드 공유 메모리 활용을 위해 Go 언어로 재작성된 컴파일러와 언어 서비스가 도입될 예정입니다. 6.0 버전은 개발자들이 7.0으로 원활하게 전환할 수 있도록 엔진 간의 동작 차이를 줄이는 가교 역할을 수행하며, 동시에 ES2025 지원 및 타입 추론 개선 등 독립적인 가치를 지닌 기능들을 대거 포함했습니다. 특히 7.0 미리보기 버전이 이미 VS Code와 npm에서 시용 가능한 상태로, 팀은 6.0을 통해 사전에 프로젝트의 호환성을 점검할 것을 권장하고 있습니다.

핵심 인사이트

  • Go 기반 엔진 전환: TypeScript 7.0은 Go 언어로 컴파일러를 재작성하여 네이티브 성능을 극대화하며, 6.0은 이를 위한 마지막 JS 기반 전환점입니다.
  • 검사 성능 옵션: 6.0과 7.0의 결과 일치성을 확인하기 위한 --stableTypeOrdering 옵션이 추가되었으며, 이 옵션 사용 시 극단적인 경우 검사 시간이 약 25%까지 추가 소요될 수 있습니다.
  • 기본 설정의 엄격화: strict 모드가 기본적으로 true로 설정되며, moduleesnext, targetes2025가 기본값이 되는 등 현대적인 런타임을 지향하는 변화가 일어났습니다.
  • 커뮤니티 기여 반영: Mateusz Burzyński가 기여한 this 미사용 메서드 타입 추론 개선과 magic-akari 등이 추진한 Node.js 20의 #/ 접두사 지원 등이 포함되었습니다.

주요 디테일

  • 타입 추론 개선: 객체 리터럴에서 this를 사용하지 않는 메서드의 경우, 컨텍스트 민감(context-sensitive) 규칙을 낮게 처리하여 매개변수가 unknown으로 추론되던 버그를 수정했습니다.
  • 모듈 해석 유연성: 이전에는 금지되었던 --moduleResolution bundler--module commonjs의 조합이 6.0부터 허용되어 레거시 프로젝트의 점진적 마이그레이션이 쉬워졌습니다.
  • ES2025 및 표준 라이브러리: RegExp.escape, Promise.try, Iterator/Set의 새로운 메서드 등이 포함된 ES2025를 지원하며, Stage 4 단계인 Temporal API가 내장 타입으로 추가되었습니다.
  • Node.js 하위 경로 지원: package.jsonimports 필드에서 #root/와 같은 형식 외에 #/* 직접 매핑을 지원하는 Node.js 20의 최신 규격이 반영되었습니다.
  • 파괴적 변경 대응: 기존 프로젝트의 호환성 유지를 위해 tsconfig"ignoreDeprecations": "6.0"을 설정하여 경고를 일시적으로 억제할 수 있습니다.

향후 전망

  • 빌드 속도의 혁신: Go 기반 엔진이 도입되는 7.0 시대에는 대규모 프로젝트의 컴파일 및 IDE 응답 속도가 비약적으로 향상될 것으로 기대됩니다.
  • 에코시스템 재편: 6.0에서 7.0으로 넘어가는 과정에서 발생하는 엄격한 타입 체크와 설정 변경은 장기적으로 TypeScript 생태계를 더욱 견고하고 표준에 가깝게 만들 것입니다.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...