-
Rust로 작성된 초고속 Python 타입 체커 및 언어 서버인 ty가 베타 버전으로 공개됨
-
mypy, Pyright, Pylance의 대안으로 설계되었으며, 10~60배 빠른 성능을 제공
-
증분형 아키텍처를 통해 코드 수정 시 필요한 부분만 재계산하여 실시간 응답 속도를 극대화
-
정확성과 사용성을 중시해 교차 타입, 고급 타입 축소, 도달 가능성 분석 등 최신 타입 시스템 기능을 지원
- Astral은 ty를 Ruff, uv와 함께 Python 생태계의 핵심 개발 도구로 발전시킬 계획
ty 개요
-
ty는 Astral이 개발한 Python 타입 체커 및 언어 서버로, Rust로 구현됨
- 기존의 mypy, Pyright, Pylance보다 훨씬 빠른 대안으로 설계
- Astral 내부 프로젝트 전반에서 이미 사용 중이며, 베타 단계에서 외부 사용자에게도 추천됨
- Astral은 Python 생태계를 위한 고성능 개발 도구를 제작하는 팀으로, uv(패키지 관리자)와 Ruff(린터 및 포매터)로 알려져 있음
성능과 아키텍처
- ty는 언어 서버 중심 구조로 설계되어, 파일 수정 시 필요한 연산만 재실행하는 증분 처리 방식을 채택
- 이로 인해 편집기 내 실시간 업데이트 속도가 매우 빠름
- 캐시 없이 실행할 경우에도 mypy 및 Pyright보다 10~60배 빠름
- 예시: PyTorch 저장소의 주요 파일 수정 시, 진단 재계산 속도는 4.7ms로 Pyright(386ms)보다 80배, Pyrefly(2.38초)보다 500배 빠름
- 대규모 프로젝트에서도 증분 업데이트 시 성능 격차가 수십 배 이상 발생
타입 시스템과 정확성
- ty는 교차 타입(intersection types) , 고급 타입 축소(advanced type narrowing) , 타입 기반 도달 가능성 분석(reachability analysis) 등을 지원
- 이러한 기능을 통해 정확한 타입 피드백을 제공하고, 불필요한 오탐(false positive)을 줄임
- 목표는 단순한 속도 향상이 아니라, 정확성과 사용자 경험을 모두 개선한 타입 체커 구축
진단 시스템
- ty는 Rust 컴파일러의 오류 메시지 시스템에서 영감을 받은 고급 진단 시스템을 포함
- 단일 진단 메시지에서 여러 파일의 문맥을 함께 제시하여 문제 원인과 해결 방향을 명확히 보여줌
- 예: 잘못된 딕셔너리 키 할당 시, 타입 불일치 위치와 선언 위치를 함께 표시
- 진단 출력은 ty의 핵심 인터페이스로, 사람과 AI 모두가 이해하기 쉬운 구조로 설계됨
언어 서버 기능
- ty는 VS Code, Cursor 등 LSP(Language Server Protocol)를 지원하는 모든 편집기에서 사용 가능
-
정의로 이동, 심볼 이름 변경, 자동 완성, 자동 임포트, 의미 기반 구문 강조, 인레이 힌트 등 현대적 언어 서버 기능을 모두 지원
-
VS Code 확장을 통해 설치 가능하며, uv tool install ty@latest 명령으로 CLI 설치도 가능
향후 계획
- 베타 이후 단기 목표는 안정성 강화와 버그 수정, Python 타입 명세 완성, Pydantic 및 Django 지원
- 장기적으로는 ty를 Astral 도구 체인의 의미 기반 기능 엔진으로 확장
-
죽은 코드 제거, 미사용 의존성 탐지, 보안 취약점(CVE) 도달성 분석, 타입 인식 린팅 등 기능 예정
- Astral은 ty를 지속적으로 개선해 Python을 가장 생산적인 프로그래밍 생태계로 만드는 것을 목표로 함
감사 인사
- ty 개발에는 수십 명의 오픈소스 기여자가 참여했으며, MIT 라이선스로 공개됨
-
Salsa, Elixir, Python typing 커뮤니티의 여러 인물과 팀이 기술적 협력 및 영감을 제공
- Astral 핵심 팀은 타입 이론, Python 런타임 의미론, 생태계 활용 패턴에 대한 깊은 이해를 바탕으로 ty를 개발함