rafal-qa/slopo
Embedding-based discovery of duplicated logic for projects too large or messy to maintain reliably
해결하는 문제
Slopo는 "가장 감지하기 어려운" 코드 중복을 찾기 위해 설계된 CLI 도구입니다. 특히 기존의 복사-붙여넣기 감지기가 놓치는, 서로 다른 방식으로 구현된 유사한 로직을 찾아냅니다. 이는 AI 코딩 에이전트나 개발자가 대규모 또는 관리가 잘 안 된 코드베이스 내에 이미 존재하는 솔루션을 재구현할 수 있는 사각지대를 겨냥합니다.
작동 원리
이 도구는 임베딩 모델을 사용하여 코드 조각의 의미를 벡터로 표현합니다. 이러한 임베딩 간의 코사인 유사도를 계산함으로써, Slopo는 구문이 다르더라도 기능적으로 유사한 코드를 식별할 수 있습니다. 소스 코드를 "코드 단위"(함수 및 블록)로 분할하고 주석을 제거한 뒤, 유사도 점수와 코드베이스 내에서의 거리(멀리 떨어진 코드를 우선순위로 함)를 기준으로 잠재적 중복을 순위 매깁니다.
대상 사용자
대규모 또는 복잡한 코드베이스에서 작업하며 기존 구현을 찾기 어려운 개발자, 그리고 AI 코딩 에이전트(Claude Code 또는 Codex 등)를 사용하여 잠재적 중복 보고서를 제공함으로써 토큰 비용을 절감하고 정확도를 높이려는 사용자들을 위한 도구입니다.
주요 특징
- 다국어 지원: Python, TypeScript, JavaScript, Java, Kotlin, C, C++, C#, Go, Rust, PHP, Elixir, Ruby 및 Swift를 지원합니다.
- AI 에이전트 통합: Claude Code 및 Codex를 위한 전용 스킬이 포함되어 있어 중복 검토 및 필터링을 자동화합니다.
- 유연한 모델 지원: LiteLLM을 통해 Jina AI, Voyage AI 및 Ollama를 사용하는 로컬 모델과 호환됩니다.
- 거리 기반 순위 지정: 서로 다른 모듈이나 같은 파일 내에서 멀리 떨어진 유사 코드를 우선순위로 높여 가장 숨겨진 중복을 강조합니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트