프로젝트 소개
ty는 Rust로 개발된, 매우 빠른 Python 타입 검사기(type checker) 및 언어 서버(language server)입니다. Astral 팀이 Python 생태계의 생산성을 극대화하기 위해 만든 차세대 개발 도구로, 대규모 코드베이스에서도 빠른 타입 체크와 개발자 경험을 제공합니다.
⚠️ 현재 ty는 프리뷰(preview) 단계로, 프로덕션 환경에서 사용하기에는 아직 준비가 덜 되어 있습니다. 개발팀은 ty를 더욱 안정적이고 완전한 기능을 갖추도록 작업 중입니다. 그때까지는 버그, 누락된 기능, 치명적인 오류가 발생할 수 있습니다.
설치 방법 (Installation)
가장 빠르게 ty를 사용해보고 싶다면, 온라인 플레이그라운드를 이용하거나 아래와 같이 uvx
명령어로 실행할 수 있습니다.
uvx ty
다른 설치 방법이나 상세 안내는 공식 설치 문서를 참고하세요.
사용법 (Usage)
아무런 서브커맨드(subcommand) 없이 ty
를 실행하면, 사용 가능한 명령어 목록이 표시됩니다. 자세한 명령어 옵션은 CLI 레퍼런스를 참고하세요.
타입 검사 실행
check
명령어를 사용하여 타입 검사를 실행할 수 있습니다.
uvx ty check
- ty는 현재 작업 디렉터리 및 하위 디렉터리의 모든 Python 파일을 검사합니다.
- 프로젝트 내에서 실행하면, 프로젝트 루트(예:
pyproject.toml
이 있는 디렉터리)부터 모든 Python 파일을 검사합니다.
특정 파일만 검사하려면 경로를 지정하세요:
uvx ty check example.py
가상환경 지원
타입 검사 시, ty는 활성화된 가상환경(VIRTUAL_ENV
) 또는 프로젝트 루트/작업 디렉터리의 .venv
를 자동으로 인식합니다. 가상환경이 아닌 경로의 패키지를 검사하려면 --python
옵션으로 타겟 경로를 지정해야 합니다. 자세한 내용은 모듈 디스커버리(module discovery) 문서를 참고하세요.
주요 특징 (Key Features)
- 초고속 타입 검사: Rust 기반으로 구현되어 대규모 프로젝트에서도 빠른 속도를 자랑합니다.
- 언어 서버 지원: LSP(Language Server Protocol)를 지원하여 다양한 에디터와 연동이 가능합니다.
- 가상환경 자동 인식: Python 개발에서 흔히 사용하는 가상환경을 자동으로 감지합니다.
- 간편한 CLI: 직관적인 명령어와 옵션으로 누구나 쉽게 사용할 수 있습니다.
- 오픈소스: MIT 라이선스로 자유롭게 사용 및 기여가 가능합니다.
더 알아보기 (Learn More)
- 공식 문서 및 예제: https://github.com/astral-sh/ty/tree/main/docs
- 질문/버그 제보: GitHub 이슈 등록
- 개발 참여: 현재 Ruff 저장소에서 개발이 진행 중이며, Rust 소스코드 변경 등은 Ruff 저장소에 PR을 보내야 합니다.
마치며
ty는 Python 개발자에게 새로운 타입 검사 경험을 제공합니다. Rust의 성능과 Python 생태계의 유연함을 결합한 이 도구는, 앞으로 Python 프로젝트의 품질과 생산성을 크게 높여줄 것으로 기대됩니다. 빠른 타입 체크, 쉬운 설치, 오픈소스의 자유로움을 모두 경험해보세요!
본 글은 astral-sh/ty 공식 GitHub 저장소 및 docs 내용을 바탕으로 작성되었습니다.