피드로 돌아가기
TypeScript를 LLVM 기계어로 직접 컴파일, "Perry" 네이티브 컴파일러
GeekNewsGeekNews
Infrastructure

TypeScript를 LLVM 기계어로 직접 컴파일, "Perry" 네이티브 컴파일러

V8 런타임 제거 및 LLVM 기반 TS 네이티브 바이너리 직접 컴파일

dopeflamingo2026년 6월 8일2advanced

Context

TS 코드를 JS로 트랜스파일 후 V8 등 무거운 JIT 런타임에서 구동하는 기존 모델의 오버헤드 발생. 런타임 계층으로 인한 무거운 바이너리 용량과 콜드 스타트 지연 시간이 주요 병목 지점으로 작용.

Technical Solution

  • SWC 파서를 통한 TS 코드 분석 및 LLVM 인프라 연동으로 타겟 플랫폼 머신 코드 직접 생성
  • Rust 기반의 Native-First 컴파일러 설계를 통한 V8 및 JVM 등 중간 런타임 계층 완전 제거
  • Strict Mode 기반의 정적 타입 시스템 활용으로 결정론적(Deterministic)인 네이티브 바이너리 빌드
  • hyper, tokio 등 Rust 생태계 라이브러리를 이용한 Node.js 표준 HTTP 모듈 에뮬레이션 구현
  • 플랫폼 네이티브 GUI 프레임워크 및 자체 React 렌더러 결합을 통한 초경량 UI 구조 설계

Impact

  • 바이너리 용량 단 몇 MB 수준으로 최적화
  • 0ms에 가까운 sub-second 콜드 스타트 달성

Key Takeaway

동적 언어의 유연성을 일부 제한하더라도 정적 컴파일 파이프라인을 구축함으로써 런타임 오버헤드를 제거하고 시스템 레벨의 성능을 확보하는 설계 전략


1. 런타임 오버헤드가 치명적인 서버리스 환경이나 임베디드 타겟 시 네이티브 컴파일 가능성 검토

2. 동적 프로토타입 변형 등 JS 특성 의존도를 낮춘 Strict Mode 기반 코드 작성 체계 수립

3. LLVM 기반의 크로스 플랫폼 빌드 파이프라인 도입을 통한 배포 최적화 방안 분석

원문 읽기