TypeProf는 Ruby의 타입 추론 엔진으로, 메서드 시그니처 추론, 에디터 지원, RBS 정의 생성을 목표로 합니다. 최소한의 타입 주석으로 코드를 ‘이해’하는 데 집중합니다.
TypeProf의 설계 원칙
-
보수적 추론: 불확실할 때
untyped를 추론하여 잠재적 오류 진단을 피합니다. 이는 Ruby의 동적 특성과 견고성 보장을 위한 설계입니다. -
의도된 침묵: 런타임 오류 감지, 계약 강제, 린터 역할 등은 TypeProf의 목표가 아니며, 런타임 타입 오류에 대한 침묵은 의도적입니다.
-
견고성 우선: 완전성보다 견고성을 중시하며, 예측 가능성을 위해 전략적 단순화(예: 상수 해석)를 택합니다.
인프라로서의 가치
TypeProf는 독립적인 타입 검사기보다 인프라로서 활용될 때 가장 효과적입니다. 코드베이스의 타입 표면을 추론하여 Steep나 Sorbet 같은 엄격한 도구와 결합 시 시너지를 냅니다. TypeProf로 RBS를 추론하고 다른 도구로 정확성을 강제하는 워크플로우는 타입이 적용된 Ruby로의 전환 비용을 낮춥니다.
사용자 기대치 재정립
TypeProf를 효과적으로 사용하려면 기대치 전환이 필수적입니다. ‘침묵’은 비활성이 아닌 분석의 결과이며, 잘못된 확신을 피하기 위해 의도적으로 정밀도를 희생하는 TypeProf의 설계 원칙을 이해해야 합니다.