하단에 원문 링크와, 번역이 있으며, 위에는 보기 쉽게 제가 정리해둔 글로 먼저 이루어져있습니다.

프론트엔드 개발자라면 누구나 경험해봤을 것이다. 대형 프로젝트를 열자마자 컴퓨터 팬이 돌아가며, 열심히 타입을 분석하고 있는 TypeScript의 답답함을. 하지만 이제 그 시대가 끝날 전망이다. Microsoft가 TypeScript의 네이티브 포트를 발표하면서 개발자들의 일상에 혁명적인 변화가 예고되고 있다.
A 10x Faster TypeScript - TypeScript
TypeScript는 현재 JavaScript로 작성되어 있다. 얼핏 보면 당연한 말로 보일 수 있다. 그러나, 이 비유를 보면 이해가 될 것이다. “종이를 자르기 위해, 종이 가위를 쓸 것인가? 강철 가위를 쓸 것인가?” 작은 종이 조각을 자를 때는 문제가 없지만, 두꺼운 종이 더미나 큰 종이를 자르려고 할 때는 가위가 무뎌지고 힘이 부족해진다.
"👨🏻🏫 : 약 10만 줄이 넘는 TypeScript 프로젝트를 열었을 때, 타입 체크만 5초가 넘게 걸렸답니다. 그때 느낀 답답함이란..."
Anders Hejlsberg(TypeScript 수석 아키텍트) : "개발자들은 변수 이름을 자신 있게 변경하고, 특정 함수의 모든 참조를 찾고, 코드베이스를 쉽게 탐색하며, 이 모든 작업을 지연 없이 수행하는 것을 좋아합니다."
Microsoft는 이제 TypeScript를 Go 언어로 다시 작성하고 있다. 이것은 종이 가위 대신 강철 가위를 사용하는 것과 같다. 2025년 3월 11일, Microsoft는 이 네이티브 포트를 공식적으로 발표했다.
Anders Hejlsberg와 Daniel Rosenwasser는 여러 프로그래밍 언어를 시도한 끝에 Go를 선택했다고 밝혔다.
"Go 언어는 성능에 초점을 맞춘 설계, TypeScript의 재귀적 데이터 구조와의 호환성, 그리고 뛰어난 크로스 플랫폼 지원 등이 선택의 이유였답니다!"
Go 언어는 다음과 같은 이점을 제공한다:
네이티브 구현은 이미 TypeScript 컴파일러 자체를 포함한 많은 인기 있는 TypeScript 프로젝트를 로드할 수 있다. 다음은 GitHub의 다양한 크기의 인기 있는 코드베이스에서 tsc를 실행하는 시간이다:
| 코드베이스 | 크기 (LOC) | 현재 | 네이티브 | 속도 향상 |
|---|---|---|---|---|
| VS Code | 1,505,000 | 77.8초 | 7.5초 | 10.4배 |
| Playwright | 356,000 | 11.1초 | 1.1초 | 10.1배 |
| TypeORM | 270,000 | 17.5초 | 1.3초 | 13.5배 |
| date-fns | 104,000 | 6.5초 | 0.7초 | 9.5배 |
| tRPC (서버 + 클라이언트) | 18,000 | 5.5초 | 0.6초 | 9.1배 |
| rxjs (observable) | 2,100 | 1.1초 | 0.1초 | 11.0배 |
"👨🏻🏫 : 저는 과거 M1 Air를 쓸 때, RN으로 앱개발 한다고, Webstorm을 IDE로 썼었는데, 안 그래도 무거운 IDE에다가 Typescript 다 보니까 메모리를 엄청 잡아먹어서, 현재 사용중인 M1 Pro로 업그레이드 했었습니다…
라떼는 말이야 ☕"
Anders Hejlsberg(TypeScript 수석 아키텍트)는 이 속도 향상이 AI 기반 도구에도 큰 영향을 미칠 것이라고 언급했다:
"이 새로운 기반은 오늘날의 개발자 경험을 넘어서 차세대 AI 도구를 가능하게 하여, 학습하고 적응하며 코딩 경험을 개선하는 새로운 도구를 제공할 것입니다."
Microsoft는 TypeScript의 네이티브 포트에 대한 명확한 출시 일정을 제시했다.
"👨🏻🏫 : 지금이 2025년 3월이니, 몇 개월 후면 미리보기를 사용해볼 수 있겠네요! 벌써부터 설렙니다."
Microsoft는 두 버전이 상당 기간 공존할 것이라고 밝혔다. 이는 기존 프로젝트의 원활한 전환을 위한 조치다.
"일부 프로젝트는 출시 시 TypeScript 7로 전환할 수 있지만, 다른 프로젝트는 특정 API 기능, 레거시 구성 또는 기타 제약 조건에 의존할 수 있습니다."
출처: Microsoft Developer Blogs - TypeScript Native Port
TypeScript의 핵심 가치는 탁월한 개발자 경험입니다. 코드베이스가 커질수록 TypeScript의 가치도 증가하지만, 대규모 코드베이스에서는 TypeScript가 제대로 확장되지 못하는 경우가 많았습니다. 대형 프로젝트에서 작업하는 개발자들은 긴 로딩 및 검사 시간을 경험하며, 합리적인 에디터 시작 시간과 소스 코드의 완전한 뷰 사이에서 선택해야 했습니다. 개발자들은 변수 이름을 자신 있게 변경하고, 특정 함수의 모든 참조를 찾고, 코드베이스를 쉽게 탐색하며, 이 모든 작업을 지연 없이 수행하는 것을 좋아합니다. AI가 제공하는 새로운 경험은 더 엄격한 지연 시간 제약 하에서 사용 가능해야 하는 의미론적 정보의 큰 창을 활용합니다. 또한 전체 코드베이스가 양호한 상태인지 검증하기 위한 빠른 명령줄 빌드도 원합니다.
이러한 목표를 달성하기 위해 TypeScript 컴파일러와 도구의 네이티브 포트 작업을 시작했습니다. 네이티브 구현은 에디터 시작을 획기적으로 개선하고, 대부분의 빌드 시간을 10배 단축하며, 메모리 사용량을 크게 줄일 것입니다. 현재 코드베이스를 포팅함으로써 2025년 중반까지 명령줄 타입 검사가 가능한 tsc의 네이티브 구현 미리보기를 제공하고, 연말까지 프로젝트 빌드와 언어 서비스를 위한 완전한 기능을 갖춘 솔루션을 제공할 예정입니다.
새로운 작업 리포지토리에서 Go 코드를 빌드하고 실행할 수 있으며, 이는 기존 TypeScript 코드베이스와 동일한 라이선스로 제공됩니다. tsc와 언어 서버를 빌드하고 실행하는 방법과 지금까지 구현된 내용의 요약을 보려면 README를 확인하세요. 새로운 기능이 테스트 가능해지면 정기적으로 업데이트를 게시할 예정입니다.
네이티브 구현은 이미 TypeScript 컴파일러 자체를 포함한 많은 인기 있는 TypeScript 프로젝트를 로드할 수 있습니다. 다음은 GitHub의 다양한 크기의 인기 있는 코드베이스에서 tsc를 실행하는 시간입니다:
| 코드베이스 | 크기 (LOC) | 현재 | 네이티브 | 속도 향상 |
|---|---|---|---|---|
| VS Code | 1,505,000 | 77.8초 | 7.5초 | 10.4배 |
| Playwright | 356,000 | 11.1초 | 1.1초 | 10.1배 |
| TypeORM | 270,000 | 17.5초 | 1.3초 | 13.5배 |
| date-fns | 104,000 | 6.5초 | 0.7초 | 9.5배 |
| tRPC (서버 + 클라이언트) | 18,000 | 5.5초 | 0.6초 | 9.1배 |
| rxjs (observable) | 2,100 | 1.1초 | 0.1초 | 11.0배 |
아직 모든 기능이 완성되지는 않았지만, 이 수치는 대부분의 코드베이스를 검사할 때 볼 수 있는 성능 향상의 규모를 보여줍니다.
이 엄청난 속도 향상이 만들어내는 기회에 대해 매우 기대하고 있습니다. 한때 도달하기 어려웠던 기능들이 이제 가능해졌습니다. 이 네이티브 포트는 전체 프로젝트에 걸쳐 즉각적이고 포괄적인 오류 목록을 제공하고, 더 고급 리팩토링을 지원하며, 이전에는 계산하기에 너무 비쌌던 더 깊은 통찰력을 가능하게 할 것입니다. 이 새로운 기반은 오늘날의 개발자 경험을 넘어서 개발을 향상시키는 차세대 AI 도구를 가능하게 하고, 학습하고 적응하며 코딩 경험을 개선하는 새로운 도구를 제공할 것입니다.
대부분의 개발자 시간은 에디터에서 소비되며, 성능이 가장 중요한 곳입니다. 에디터가 대형 프로젝트를 빠르게 로드하고 모든 상황에서 빠르게 응답하기를 원합니다. Visual Studio와 Visual Studio Code 같은 현대적인 에디터는 기본 언어 서비스도 빠르다면 탁월한 성능을 제공합니다. 네이티브 구현을 통해 믿을 수 없을 정도로 빠른 에디터 경험을 제공할 수 있을 것입니다.
다시 Visual Studio Code 코드베이스를 벤치마크로 사용하면, 빠른 컴퓨터에서 에디터에 전체 프로젝트를 로드하는 현재 시간은 약 9.6초입니다. 이는 네이티브 언어 서비스를 사용하면 약 1.2초로 줄어들어 에디터 시나리오에서 프로젝트 로드 시간이 8배 향상됩니다. 이는 모든 TypeScript 코드베이스에서 에디터를 열고 첫 번째 키 입력까지 더 빠른 작업 경험으로 이어집니다. 모든 프로젝트가 이 수준의 로드 시간 개선을 볼 것으로 예상합니다.
전체 메모리 사용량도 현재 구현의 약 절반으로 보이지만, 아직 이를 최적화하는 데 적극적으로 조사하지 않았으며 추가 개선을 실현할 것으로 예상합니다. 모든 언어 서비스 작업(완성 목록, 빠른 정보, 정의로 이동, 모든 참조 찾기 포함)에 대한 에디터 응답성도 상당한 속도 향상을 볼 것입니다. 또한 다른 언어와 구현을 더 잘 정렬하기 위해 오랫동안 인프라 작업 항목이었던 Language Server Protocol(LSP)로 이동할 예정입니다.
가장 최근의 TypeScript 릴리스는 TypeScript 5.8이었으며, TypeScript 5.9가 곧 출시될 예정입니다. JS 기반 코드베이스는 6.x 시리즈로 계속 개발될 것이며, TypeScript 6.0은 향후 네이티브 코드베이스와 정렬하기 위한 일부 사용 중단 및 주요 변경 사항을 도입할 것입니다.
네이티브 코드베이스가 현재 TypeScript와 충분한 동등성에 도달하면 TypeScript 7.0으로 출시할 예정입니다. 이는 아직 개발 중이며 안정성 및 기능 마일스톤이 발생할 때 발표할 예정입니다.
명확성을 위해, 가까운 미래에 사용될 명명법이므로 이들을 단순히 TypeScript 6(JS)와 TypeScript 7(네이티브)로 지칭할 것입니다. 내부 논의나 코드 주석에서 "Strada"(원래 TypeScript 코드명)와 "Corsa"(이 노력의 코드명)를 언급하는 것을 볼 수도 있습니다.
일부 프로젝트는 출시 시 TypeScript 7로 전환할 수 있지만, 다른 프로젝트는 특정 API 기능, 레거시 구성 또는 TypeScript 6를 필요로 하는 기타 제약 조건에 의존할 수 있습니다. JS 개발 생태계에서 TypeScript의 중요한 역할을 인식하여, TypeScript 7+가 충분한 성숙도와 채택에 도달할 때까지 6.x 라인에서 JS 코드베이스를 계속 유지할 것입니다.
장기적인 목표는 이러한 버전을 최대한 밀접하게 정렬하여 요구 사항을 충족하는 즉시 TypeScript 7로 업그레이드하거나 필요한 경우 TypeScript 6로 대체할 수 있도록 하는 것입니다.
앞으로 몇 달 동안 성능, 새로운 컴파일러 API, LSP 등에 대한 더 깊은 탐구를 포함하여 이 흥미로운 노력에 대해 더 많은 정보를 공유할 예정입니다. GitHub 리포지토리에 FAQ를 작성하여 예상되는 질문에 답변했습니다. 또한 3월 13일 오전 10시 PDT(UTC 오후 5시)에 TypeScript Community Discord에서 AMA에 참여하도록 초대합니다.
10배의 성능 향상은 TypeScript 및 JavaScript 개발 경험에 있어 엄청난 도약을 의미하므로, 여러분도 우리만큼 이 노력에 대해 열정적이기를 바랍니다.
🙇🏻 글 내에 오번역, 틀린 점, 오탈자, 비판, 공감 등 모두 적어주셔도 됩니다. 감사합니다..! 🙇🏻
Reddy Anna Book is a trusted platform for sports enthusiasts, offering real-time updates and a seamless experience. With easy access through Reddy Anna Login and secure Reddy Anna Book ID, users can stay informed and enjoy a smooth experience. Visit: https://reddyannabook.agency/
If you’re a fan of online gaming and entertainment, Laser247 Club is the place to be! With easy Laser247 Login, you can dive into top gaming experiences and exciting challenges. Join now and take your online gaming to the next level! Visit: https://laser247club.co.in/
WinExch, launched in 2019, is a dynamic gaming platform packed with 3000+ exciting games across various genres. Designed for seamless gameplay, it offers a top-tier experience with high-speed performance and secure transactions. Whether you're into strategy, skill-based challenges, or live-action gaming, WinExch delivers nonstop entertainment. Visit: https://winexch.org.in/
TypeScript Type System으로 Doom을 실행하는데 1프레임 랜더링하는데에만 3개월이 걸린다던데, 이제는 10배 빨라져서 9일밖에 안 걸릴 거라네요! 우와~~~