Slopo, AI로 비슷한 중복 코드를 찾는 명령줄 도구
Slopo는 완전히 똑같이 복사된 코드가 아니라, 비슷하게 생겼지만 멀리 떨어져 있어 놓치기 쉬운 중복 코드를 찾는 다. , , , Java, Kotlin, C#, Go, Rust 코드를 지원한다. 각 코드 단위를 임베딩 모델로 숫자처럼 바꾼 뒤, 서로 가까운 것들을 찾아 묶음으로 보여준다.
결과는 유사도와 코드베이스 안에서 얼마나 떨어져 있는지를 함께 보고 정렬된다. 비슷해 보인다고 모두 고쳐야 할 중복은 아니므로, Claude, Codex, Cursor 같은 에게 묶음을 검토하게 하고 진짜 중복만 리팩터링 대상으로 남기는 흐름을 전제로 한다. 설치는 `uv tool install slopo`로 하고, `slopo init`으로 설정 파일을 만든 뒤 `slopo index`, `slopo embed`, `slopo analyze` 순서로 보고서를 만든다.
임베딩 계산은 과 호환되는 외부 제공자를 쓰며, 예시로 코드용 모델을 제공하는 Voyage AI가 언급된다. 검토한 묶음은 `slopo.ignore.txt`에 무시 목록으로 남길 수 있고, 설정 파일은 저장소에 넣을 수 있지만 로컬 데이터 파일인 `slopo.db`는 넣지 않는 방식이 권장된다.
핵심 포인트
- 완전히 같은 복사본뿐 아니라 비슷하게 작성된 중복 코드 후보를 찾는다.
- , , , Java, Kotlin, C#, Go, Rust를 지원한다.
- 기본 흐름은 설정 생성, 색인 만들기, 임베딩 계산, 분석 보고서 생성이다.
- 가 후보 묶음을 검토해 진짜 중복과 무시할 항목을 나누는 방식에 맞춰져 있다.
- 이미 검토한 항목은 `slopo.ignore.txt`에 남겨 다음 보고서에서 빼둘 수 있다.