더 좋아진 타입스크립트

park.js·7일 전
0

FrontEnd Develop log

목록 보기
45/45
post-thumbnail

TypeScript Native Previews 발표: 10배 빠른 TypeScript 컴파일러

원문: Announcing TypeScript Native Previews - Microsoft Dev Blogs

개요

Microsoft TypeScript 팀이 2025년 5월 22일, TypeScript Native Previews의 광범위한 가용성을 발표했습니다. 이는 지난 3월에 공개된 네이티브 코드로 포팅된 TypeScript 컴파일러의 첫 번째 공개 프리뷰입니다.

핵심 성능 개선

10배 빠른 컴파일 속도

  • 기존 TypeScript: JavaScript 기반 (Strada)
  • 새로운 TypeScript: Go 언어로 작성된 네이티브 코드 (Corsa)
  • 성능 향상: 대부분의 프로젝트에서 10배 빠른 속도 달성
  • 개선 요소:
    • 네이티브 컴파일 언어 사용 (Go)
    • 공유 메모리 병렬 처리
    • 동시성 최적화

설치 및 사용법

1. npm을 통한 설치

npm install -D @typescript/native-preview

2. 명령줄 사용

# 기존 tsc 대신 tsgo 사용
npx tsgo --project ./src/tsconfig.json

# 진단 정보와 함께 실행
npx tsgo -p . --noEmit --extendedDiagnostics

3. VS Code 확장 프로그램

  • 확장 프로그램명: "TypeScript (Native Preview)"
  • 설치 방법: VS Code Extension Marketplace에서 설치
  • 활성화 방법:
    • 명령 팔레트에서 "TypeScript Native Preview: Enable (Experimental)" 실행
    • 또는 설정에서 "typescript.experimental.useTsgo": true 추가

실제 성능 비교

Sentry 프로젝트 기준 성능 테스트

기존 TypeScript 5.8 (Strada):

Files:                         9306
Lines of TypeScript:        1113969
Memory used:               3356832K
Total time:                  72.81s  # 1분 이상 소요

새로운 TypeScript Native (Corsa):

Files:              9292
Lines:           1508361
Memory used:    3892267K
Total time:        ~7.3s   # 약 10배 빠름

주요 기능 지원 현황

✅ 완전 지원

  • 타입 체킹: 대부분의 타입 체킹 기능 완전 지원
  • JSX: JSX 타입 체킹 지원 추가됨
  • JavaScript + JSDoc: JSDoc 기반 타입 체킹 지원
  • 기본 완성 기능: 코드 완성 기능 구현

🚧 개발 중인 기능

  • 자동 임포트: 아직 구현되지 않음
  • 찾기/참조: find-all-references 기능 개발 중
  • 이름 변경: rename 기능 개발 중
  • 시그니처 도움말: signature help 개발 중

❌ 아직 미지원

  • 빌드 모드: --build 플래그 미지원
  • 선언 파일 생성: --declaration 미지원
  • 다운레벨 컴파일: 일부 구버전 타겟 미지원
  • 프로젝트 참조: 언어 서비스에서 프로젝트 참조 미지원

알려진 차이점 및 주의사항

1. 모듈 해석 방식 변경

기존 설정에서 오류가 발생할 수 있습니다:

// ❌ 더 이상 권장되지 않음
{
  "compilerOptions": {
    "moduleResolution": "node",
    "module": "commonjs"
  }
}
// ✅ 권장 설정
{
  "compilerOptions": {
    "module": "preserve",
    "moduleResolution": "bundler"
  }
}

2. TypeScript 6.0 호환성

  • node/node10 해석 방식은 TypeScript 6.0에서 제거될 예정
  • node16, nodenext, bundler 해석 방식 사용 권장

로드맵 및 업데이트

단기 계획 (2025년 말까지)

  • 완전한 컴파일러: --build 등 주요 기능 완성
  • 언어 서비스: 대부분의 편집기 기능 구현
  • API 안정화: API 레이어 완성

업데이트 정책

  • 야간 빌드: 매일 새로운 개발 버전 배포
  • 자동 업데이트: VS Code 확장 프로그램 자동 업데이트
  • 문제 발생 시: "TypeScript Native Preview: Disable" 명령으로 비활성화 가능

개발자 권장사항

1. 시도해보기

  • 새로운 프로젝트나 테스트 환경에서 먼저 시도
  • 기존 프로젝트는 백업 후 테스트

2. 문제 보고

  • 예상과 다른 동작 발견 시 GitHub 이슈 트래커에 보고
  • 구체적인 재현 단계와 함께 보고

3. 점진적 도입

  • 현재는 프리뷰 단계이므로 프로덕션 환경에서는 주의
  • 안정화 후 TypeScript 7로 정식 출시 예정

결론

TypeScript Native Previews는 TypeScript 생태계의 중요한 발전입니다. 10배 빠른 컴파일 속도는 대규모 프로젝트에서 개발자 경험을 크게 향상시킬 것으로 예상됩니다.

현재는 프리뷰 단계이지만, 지속적인 개발과 커뮤니티 피드백을 통해 안정적인 TypeScript 7로 발전할 예정입니다. 개발자들은 이 기회에 새로운 네이티브 TypeScript를 미리 경험해보고 피드백을 제공하는 것이 좋겠습니다.


참고 자료:

profile
참 되게 살자

0개의 댓글