본문 바로가기

개발이야기

TypeScript 7.0 RC: Go 네이티브 컴파일러가 CI를 10배 빠르게 만드는 조건

반응형

핵심 요약

Microsoft는 2026년 6월 18일 TypeScript 7.0 Release Candidate를 공개했다(〈Microsoft DevBlogs〉 2026-06-18). 컴파일러·언어 서비스가 JavaScript 기반에서 Go 네이티브로 포팅(Project Corsa)되면서, 타입 체크 속도가 6.0 대비 약 10배 빨라진다는 벤치마크가 보고된다(〈typescript.news〉 2026-06-20). 6.0(2026년 3월 GA)은 마지막 JS 기반 메이저로, deprecations·마이그레이션 플래그로 7.0 전환을 준비하는 브릿지 릴리스였다(〈Visual Studio Magazine〉 2026-03-23). npm install -D typescript@rc로 RC를 설치하면 npx tsc --version7.0.1-rc를 표시한다. 안정 GA는 RC 기준 약 1개월 내 예상이나, 공식 일정은 고정 날짜가 아니다(〈Digital Applied〉 2026-06-18).

무슨 일이 있었나

배경: TypeScript는 2012년부터 컴파일러를 TypeScript/JavaScript로 작성해 왔다. 2025년 초 Microsoft는 Go로 재작성하는 Project Corsa를 발표했고, 6.0에서 7.0 도입을 위한 API·동작 정렬을 마쳤다.

7.0 RC의 핵심:

  • 동일한 타입 의미론 — 포트이지 리라이트이므로 타입 체크 결과는 6.0과 같아야 한다(〈Digital Applied〉 2026-06-18)
  • 공유 메모리 병렬화 — 단일 스레드 JS 부트스트랩 대비 대규모 모노레포에서 체감 속도 개선
  • 프로그래매틱 API는 7.1로 연기 — eslint·prettier 등 도구가 아직 6.0 API에 의존

병행 실행 패키지: Go 컴파일러는 아직 안정적인 programmatic API가 없어, Microsoft는 @typescript/typescript6 패키지를 배포했다. npx tsc는 7.0 RC를 실행하고, typescript-eslint 등은 typescript 이름 아래 6.0 API를 계속 쓸 수 있다(〈typescript.news〉 2026-06-20). 나이틀리 빌드는 @typescript/native-preview(바이너리 tsgo)로도 제공된다.

실적 사례: DevBlog(2026-04)와 typescript.news는 Bloomberg·Canva 등 초대형 코드베이스에서 7.0 프리뷰 채택 사례를 언급한다.

마이그레이션 관점

권장 순서는 다음과 같다(〈typescript.news〉 2026-06-20):

1. 6.0으로 먼저 올리기npm install -D typescript@6, deprecations 해소

2. CI에 RC 병렬 실행npm install -D typescript@rc, 기존 6.0 파이프라인과 diff 비교

3. --checkers 고정 — 머신 간 동일 결과를 원하면 체커 옵션 pin

4. 도구 체인 분리 — lint는 @typescript/typescript6, 빌드는 7.0 RC

고유 인사이트: 10배 속도는 "모든 프로젝트에서 CI가 10배"를 뜻하지 않는다. 병목이 번들러(esbuild/vite)·테스트 러너에 있으면 tsc만 빨라져도 전체 파이프라인은 2~3배 수준일 수 있다. 반대로 타입 체크만 5분 이상 걸리는 모노레포는 RC 도입 ROI가 가장 크다. 7.1에서 programmatic API가 안정화되기 전까지는 "컴파일러는 7, 생태계 도구는 6 API" 이원화를 전제로 운영 설계를 해야 한다.

체크포인트와 리스크

  • 체크포인트
  • microsoft/typescript-go 이슈 트래커에 RC 회귀 버그 제보
  • 커스텀 transformer·compiler API 사용 여부(7.0 RC에서 미지원)
  • VS Code 확장과 @typescript/native-preview 버전 호환
  • GA 발표 후 latest 태그 전환 시 lockfile 갱신
  • 리스크 요인
  • RC를 프로덕션 cutover에 바로 사용(팀 정책에 따라)
  • eslint/typescript-eslint가 6.0 API에 묶인 상태에서 타입 버전만 7.0으로 올려 불일치
  • --noEmit CI와 emit CI의 속도 차이 과대평가

마무리

TypeScript 7.0 RC는 "같은 언어, 다른 엔진" 전환의 마지막 관문이다. 6월 29일 기준 개발팀이 할 일은 RC로 벤치마크·회귀 테스트를 돌리고, 7.1 API 안정화까지 @typescript/typescript6로 도구를 유지하는 것이다. 속도 이득은 실측으로 확인하고, GA 전에 deprecations·CI diff를 정리해 두면 7월 안정화 시 무중단 전환에 가까워진다.

참고 자료