Slopo, AI로 비슷한 중복 코드를 찾는 명령줄 도구

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`에 남겨 다음 보고서에서 빼둘 수 있다.
원문 보기