kucherenko/jscpd
Copy/paste detector for source code. 220+ languages, Rust engine, SARIF/HTML/badge reporters, GitHub Action, MCP server for AI agents.
해결하는 문제
jscpd는 대규모 코드베이스에서 중복 코드, 데드 코드, 복잡도 핫스팟을 감지하도록 설계된 고성능 도구입니다. 중복된 로직, 사용되지 않는 코드, 유지보수가 어렵거나 버그가 발생하기 쉬운 지나치게 복잡한 파일을 식별하여 개발자가 코드 상태를 유지하도록 돕습니다.
작동 방식
이 도구는 Rust 기반 엔진을 사용하여 224개 이상의 프로그래밍 언어의 특정 구문 규칙에 따라 소스 코드를 토큰화합니다. 그런 다음 롤링 Rabin-Karp 해시 알고리즘을 사용하여 중복된 시퀀스를 식별합니다. 단순한 텍스트 매칭을 넘어, 식별자 이름 변경(Type-2), 약간의 수정이 포함된 유사 클론(Type-3), 그리고 코드 임베딩 모델을 사용하여 기능적으로 동일하지만 다르게 작성된 코드를 찾는 실험적인 의미론적 클론 감지 등 고급 감지 유형을 지원합니다.
대상 사용자
코드 품질 표준을 강제하고, 기술 부채를 추적하며, 모노레포 및 대규모 프로젝트에서 중복 코드 축적을 방지해야 하는 소프트웨어 엔지니어, DevOps 팀, CI/CD 파이프라인을 대상으로 합니다.
주요 특징
- 언어 인식 토큰화를 통해 224개 이상의 언어 형식 지원.
- AI 지원 MCP 서버 및 LLM 기반 분석 워크플로우를 위한 토큰 효율적인 리포터 포함.
- Git 기록 전반에서 코드 상태 및 중복 추세를 추적하여 회귀 방지.
- JavaScript, TypeScript, Python 전반에서 데드 코드(사용되지 않는 파일, 내보내기 및 가져오기) 감지.
- Neovim, Helix, JetBrains와 같은 IDE에서 실시간 진단을 위한 언어 서버(LSP) 제공.
- SARIF, Code Climate 및 사용자 지정 임계값을 지원하는 유연한 CI 통합 제공.
관련
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트