대규모 환경에서의 개인정보 보호형 타입 오류 원격 측정
Author
Venue
프로그래밍의 예술, 과학, 공학
Abstract
배경: Roblox Studio는 수백만 명의 크리에이터가 Luau라는 Lua 변형 언어를 사용하여 프로그래밍함으로써 상호작용형 경험을 구축할 수 있도록 지원합니다. 크리에이터는 첫 스크립트를 작성하는 초보자부터 전문 개발자에 이르기까지 광범위한 그룹을 형성하므로, Luau는 다양한 사용자를 지원해야 합니다. 모든 유형의 프로그래머를 지원하기 위한 노력의 일환으로, Luau는 선택적이며 점진적인 타입 시스템을 포함하고 있으며, 오탐지 오류를 최소화하기 위해 많은 노력을 기울이고 있습니다. 연구 배경: 현재 많은 크리에이터가 Luau를 사용하고 있으므로, 우리는 언어, 특히 타입 시스템을 개선하기 위한 데이터를 수집하고자 합니다. 데이터를 수집하는 표준적인 방법은 클라이언트 측 텔레메트리(telemetry)를 배포하는 것이지만, 개인 데이터나 독점 정보를 수집할 수 없으므로 소스 코드 조각, 오류 메시지, 심지어 파일 경로조차 수집할 수 없습니다. 따라서 연구 과제는 비침습적인 방식으로 텔레메트리를 수행하고, 이를 통해 유형 오류에 대한 통찰력을 얻는 방법에 관한 것입니다. 접근 방식: 우리는 Luau를 위한 가명 처리된 무작위 표본 추출 텔레메트리 시스템을 설계하고 구현했습니다. 텔레메트리 기록에는 타임스탬프, 세션 ID, 전송 사유, 그리고 가장 최근의 유형 분석에 대한 수치 요약이 포함됩니다. 이 정보를 통해 개인 데이터를 노출하지 않고도 시간 경과에 따른 유형 오류를 연구할 수 있습니다. 우리는 2023년 봄에 Roblox Studio에 이 시스템을 배포하여 34만 건 이상의 세션에서 150만 건 이상의 텔레메트리 기록을 수집했습니다. 연구 결과: 우리는 Luau에 대한 몇 가지 연구 결과를 제시하며, 이 모든 결과는 텔레메트리가 타입 오류의 실용적 측면을 연구하는 효과적인 방법임을 시사합니다. 그다지 놀랍지 않은 발견 중 하나는 옵트인 점진적 타입이 인기가 없다는 점입니다. 타입이 지정되지 않은 Luau 세션 수와 타입이 지정된 세션 수 사이에는 100배의 차이가 있습니다. 한 가지 놀라운 점은 타입 분석의 엄격 모드가 데이터 자산과의 상호작용에 대해 지나치게 보수적이라는 것입니다. 안심할 수 있는 발견은 타입 분석이 문제 크기에 대한 내부 한계에 거의 도달하지 않는다는 점입니다. 근거: 우리의 연구 결과는 150만 건 이상의 텔레메트리 기록으로 구성된 데이터셋을 통해 뒷받침됩니다. 분석에 사용된 데이터와 스크립트는 아티팩트에서 확인할 수 있습니다. 중요성: Luau에 대한 직접적인 이점을 넘어, 타입 및 타입 오류에 대한 우리의 연구 결과는 TypeScript, Elixir, Typed Racket과 같은 다른 점진적 언어의 채택 및 사용 편의성에 시사점을 제공합니다. 또한, 민감한 정보를 노출하지 않으면서 타입 오류를 보고하는 우리의 텔레메트리 설계는 폭넓은 관심을 끌 만합니다.
