MS, 타입스크립트 컴파일러 'Go'로 전환… 성능 10배 향상 기대
마이크로소프트가 타입스크립트의 성능을 근본적으로 개선하기 위해 컴파일러와 관련 도구를 재구성한다. 14일 마이크로소프트는 타입스크립트 컴파일러를 Go언어로 전환하는 프로젝트 코르사(Project Corsa)를 공식 홈페이지를 통해 발표했다. 마이크로소프트의 아네르스 하일스베르 수석 아키텍처는 타입스크립트의 성능 최적화를 위해 다양한 언어로 프로토타입을 테스트한 결과 최종적으로 Go를 선택했다고 밝혔다. 현재 타입스크립트 컴파일러(tsc)는 자바스크립트 기반의 타입스크립트 언어로 작성됐으며 노드.js에서 실행된다. 이러한 구조는 동적 언어의 특성상 네이티브 코드 기반의 컴파일러보다 성능이 떨어지는 한계를 지닌다. 대규모 프로젝트에서는 빌드 시간이 길어지고, 메모리 사용량이 증가하는 문제가 있었다. Go는 최적화된 네이티브 코드 생성을 지원하며, 노드js 같은 추가적인 런타임 환경 없이 독립 실행 파일을 제공할 수 있다. 아네르스 하일스베르 수석 아키텍처는 이번 전환을 통해 기존보다 최대 10배 이상 빠른 빌드 속도를 제공할 것으로 예상된다고 설명했다. 예를 들어 150만 라인의 코드로 구성된 VS 코드 프로젝트를 기존 타입스크립트 컴파일러로 빌드하면 약 77.8초가 소요된다. Go 기반의 새로운 컴파일러에서는 7.5초로 단축되어 10.4배의 속도 향상이 이루어졌다. 편집기에서 프로젝트 로드에 걸리는 시간도 약 9.6초에서 약 1.2초로 줄어드는 등 작업 속도를 향상시키며 전반적인 메모리 사용량도 현재 구현의 약 절반 준으로 줄어들 전망이다. 타입스크립트 컴파일러는 순환 참조를 포함한 복잡한 데이터 구조를 다루는데, Go는 이러한 데이터 구조를 효율적으로 관리할 수 있으며, 가비지 컬렉션 기능을 제공해 메모리 누수를 방지할 수 있다. Go의 병렬 처리 및 동시성 지원도 중요한 요소다. Go는 고루틴(goroutine)을 활용한 병렬 처리가 강력해 대규모 프로젝트의 빌드 시간을 단축하는 데 유리하며, 단순한 문법과 강력한 표준 라이브러리를 제공해 유지보수 및 개발 속도를 향상시킬 수 있다. 마이크로소프트는 2025년 중반까지 Go기반 타입스크립트 컴파일러(tsc)의 프리뷰 버전을 제공할 예정다. 이어 연말까지 프로젝트 빌드 및 언어 서비스에 대한 완전한 기능을 구현할 계획이다. 또한 향후 인공지능(AI) 기반 기능과의 연계를 고려해, 새로운 프로세스 간 API를 개발하고 있다. 아네르스 하일스베르 수석 아키텍처는 "우리는 이 엄청난 속도 향상이 만들어내는 기회에 대해 매우 흥분하고 있다"며 "전체 프로젝트에 걸쳐 즉각적이고 포괄적인 오류 목록을 제공하고, 더욱 진보된 리팩토링을 지원하는 등 한때 손이 닿지 않는 것처럼 보였던 기능이 이제 손이 닿는 곳까지 왔다"고 말했다. 이어 "이 새로운 기반은 기존 개발자 경험을 넘어서 차세대 AI 도구가 개발을 향상시키고, 코딩 경험을 학습하고, 적응하고, 개선하는 새로운 도구를 구동할 수 있는 기반이 될 것"이라고 비전을 제시했다.