코드 Linter는 코드 문제를 자동으로 감지하는 도구로, 개발자가 오류를 조기에 식별하여 개발 속도를 높이고 코드 품질을 개선하도록 돕습니다. 주로 단일 Linter나 비공식적인 비교에 초점을 맞춘 이전 연구들과 달리, 본 논문은 다섯 가지 광범위하게 사용되는 Python Linter인 Ruff, Pylint, Flake8, Mypy, Black에 대해 네 가지 핵심 사용자 관심사(linting 규칙 검사, 속도, 설정 방법, Linter 선호도)를 통해 최초로 대규모 실증 연구를 제시합니다. 우리는 1,551개의 linting 규칙을 분석하고 이를 다섯 가지 유형으로 분류하여 규칙 매핑을 구성했으며, 그 결과 40% 이상이 여러 Linter 간에 공유되고 있으며, Ruff와 Pylint가 함께 모든 규칙의 80% 이상을 커버한다는 것을 발견했습니다. Pylint는 첫 두 범주에서 가장 많은 규칙을 가지고 있고, Ruff는 나머지 세 범주에서 선두를 차지합니다. 다음으로, 우리는 세 가지 설정(단일 규칙, 기본값, 전체 규칙) 하에 1,000개의 GitHub 프로젝트에서 이들의 실행 시간을 측정했으며, 가장 빠른 것부터 느린 순서로 일관된 속도 순위가 나타났습니다: Ruff, Mypy, Flake8, Black, Pylint. Ruff는 일반적으로 1초 이내의 실행 시간으로 매우 빠릅니다. 그다음, 우리는 다섯 가지 Linter에 걸쳐 사용 가능한 443개의 옵션 중 네 가지 설정 방법과 네 가지 유형의 구성 옵션을 요약했습니다. 모든 Linter가 네 가지 설정 방법을 지원하지만, 프로젝트 설정 형식과 구성 옵션의 유연성에서 차이를 보입니다. 마지막으로, 다섯 가지 Linter를 사용하여 분석한 3,094개의 GitHub 프로젝트는 50% 이상이 여러 Linter를 사용하며, 옵션 선택 및 규칙 무시(rule suppressions)에 대해 강력한 합의를 공유하지만, 활성화된 규칙 구성에서는 프로젝트별 변동성을 보인다는 것을 밝혀냈습니다. 우리의 연구 결과는 Linter 사용자들에게 실행 가능한 통찰력을 제공하고, 크로스-Linter 규칙 매핑, 성능 모델링, 자동화된 구성을 위한 벤치마크 데이터셋과 분류 체계를 확립합니다.