# TypeScript Native 프리뷰 공개

> Clean Markdown view of GeekNews topic #21089. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=21089](https://news.hada.io/topic?id=21089)
- GeekNews Markdown: [https://news.hada.io/topic/21089.md](https://news.hada.io/topic/21089.md)
- Type: news
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-05-25T09:42:02+09:00
- Updated: 2025-05-25T09:42:02+09:00
- Original source: [devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-native-previews/)
- Points: 10
- Comments: 3

## Summary

Go 기반의 **Corsa(tsgo) 프로젝트**는 TypeScript를 네이티브로 포팅하여, **대규모 코드베이스에서 10배 이상의 컴파일 속도**와 **병렬 처리, JSX 및 JSDoc 타입 검사** 같은 혁신을 선보입니다. **VS Code 확장, LSP 기반 언어 서버, Rust 기반 Node 모듈(libsyncrpc)** 등 새로운 생태계 통합이 진행 중이며, 일부 핵심 기능은 연내 구현을 목표로 합니다. **기존 tsc와의 명확한 차이점**과 새로운 설정 방식으로, 대규모 프로젝트에서 생산성과 호환성 향상을 기대할 수 있습니다.

## Topic Body

- 타입스크립트 컴파일러를 Go 기반 네이티브로 포팅하는 프로젝트 Corsa의 ‘tsgo’ 프리뷰가 npm으로 공개됨  
- 3월에 이슈가 되었던 [10배 더 빠른 TypeScript](https://news.hada.io/topic?id=19695) 관련 후속 발표   
- 기존 `tsc` 대비 **10배 이상의 속도 향상**을 달성했으며, **JSX와 JSDoc 기반 JS 파일도 지원**  
- VS Code용 Native Preview 확장도 출시되었으나, **자동완성, 참조 찾기 등은 아직 개발 중**  
- 새로운 네이티브 API와 LSP 기반 언어 서버도 준비 중이며, **Rust 기반 Node 모듈 libsyncrpc 도입**  
- 일부 기능은 아직 미구현이며, **TypeScript 7(Corsa)와 기존 5.8(Strada) 간 명확한 차이 존재**  
  
---  
  
### TypeScript Native Preview 개요  
  
- 2025년 3월 발표된 **타입스크립트 네이티브 포팅 프로젝트(Corsa)** 의 프리뷰가 공개됨  
- 기존 JS 기반 코드베이스(Strada) 대비 Go로 작성된 `tsgo`는 **병렬성과 공유 메모리 활용**으로 대규모 프로젝트에서 10배 이상의 성능 향상을 보임  
- `tsgo`는 향후 `tsc`로 대체될 예정이지만 현재는 별도 npm 패키지로 제공됨  
  ```bash  
  npm install -D @typescript/native-preview  
  npx tsgo --project ./src/tsconfig.json  
  ```  
  
### VS Code 확장 기능  
  
- VS Code용 “**TypeScript (Native Preview)**” 확장 출시  
- 설치 후 **명령어 팔레트 또는 설정**을 통해 활성화 필요  
  ```json  
  "typescript.experimental.useTsgo": true  
  ```  
  
- 현재는 기존 확장에 의존하며 기능은 제한적이나 지속적으로 개선 예정  
  
### 릴리스 주기 및 개발 로드맵  
  
- 해당 프리뷰는 향후 **TypeScript 7 정식 버전으로 발전** 예정  
- **야간 빌드(Nightly)** 로 배포되며, 자동 업데이트됨  
- 일부 기능 미지원 상태:  
  * `--build`, `--declaration`, 하위 타깃 emit  
  * 에디터 기능: 자동완성, 참조찾기, 리네임 등  
  
### 주요 업데이트 사항  
  
#### 타입 검사 완성도 향상  
  
- 대부분의 타입 검사 기능 포팅 완료  
- **JSX와 JavaScript + JSDoc 타입 검사**도 지원 시작  
- 일부 intentional 변경사항 및 `lib.d.ts` 차이로 오류가 다를 수 있음  
  
#### JSX 타입 검사 지원  
  
- JSX는 초기엔 파싱만 가능했으나, **이제 완전한 타입 검사 지원**  
- 예시: Sentry 프로젝트 기준 `tsc`는 72초, `tsgo`는 6.7초로 **10배 이상 속도 향상**  
  ```bash  
  tsgo -p . --noEmit --extendedDiagnostics  
  ```  
  
#### JavaScript 파일 타입 검사  
  
- JSDoc 기반으로 JS 파일을 분석하는 기능도 네이티브 코드에서 재구현됨  
- 과거 방식보다 **현대적이고 일관된 방식**으로 리팩토링됨  
- 일부 구형 패턴은 더 이상 인식되지 않을 수 있음  
  
#### 에디터 기능 (LSP 기반)  
  
- 기존 TSServer 대신 **LSP 기반 언어 서버**로 재작성 중  
- 초기 버전에서는 **오류 표시, 정의로 이동, hover** 기능 제공  
- 최근에는 **자동완성(completion)** 기능도 추가됨  
  
#### API 개발 현황  
  
- **IPC 기반 API 레이어** 구현 중  
- 다양한 언어에서 TypeScript 프로세스와 통신 가능  
- Node.js에서 동기 통신을 위해 Rust 기반 모듈 [**libsyncrpc**](https://github.com/microsoft/libsyncrpc) 도입  
- 아직 API 디자인 초기 단계, 피드백 수용 중  
  
### 기존 TypeScript와의 차이점  
  
- 일부 설정 차이로 **기존 프로젝트에서 오류 발생 가능**:  
  * 예: `--moduleResolution: node` → `bundler` 또는 `nodenext` 권장  
    ```json  
    {  
      "compilerOptions": {  
        "module": "preserve",  
        "moduleResolution": "bundler"  
      }  
    }  
    ```  
  
- 기타 차이:  
  * JSX emit은 보존만 가능  
  * declaration emit 미지원  
  * `--build` 미지원  
  * 프로젝트 참조 관련 언어 서비스 미완성  
  
### 앞으로의 계획  
  
- 올해 말까지 `--build` 및 에디터 핵심 기능 대부분 구현 목표  
- 개발 진행 상황은 블로그 및 nightly 릴리스를 통해 지속 업데이트 예정

## Comments



### Comment 39202

- Author: riki3
- Created: 2025-05-25T14:45:05+09:00
- Points: 1

lsp 직접 빌드해서 사용중입니다. go로 바꾸니 리소스 줄어든게 체감이 확되네요

### Comment 39188

- Author: cnaa97
- Created: 2025-05-25T11:36:31+09:00
- Points: 1

요즘은 js를 rust / go로 옮기기만 해서 성능 향상시키는게 유행

### Comment 39183

- Author: click
- Created: 2025-05-25T10:19:15+09:00
- Points: 1

리팩토링하다 보면 tsserver쪽 코드 파싱이 느려져서 에디터가 통채로 멈추는 경우가 꽤 있었는데 빨리 나와서 이 고통에서 해방되었으면 좋겠네요
