TL;DR
CodeEraser는 LLM이 반복 코드와 문서를 계속 덧붙이는 과정에서 생기는 코드베이스의 엔트로피를 모델 없이 쓰기 순간과 CI에서 통제하는 개발 도구입니다. 파일을 디스크에 기록하기 전에 정규화 토큰과 지문을 비교해 새 T1/T2 중복이나 파일 크기 초과를 거부하고, Stop 감사와 커밋·CI 단계에서 더 깊은 복제·문서 중복·고립 파일 검사를 이어갑니다. T3 구조 복제에는 MinHash/LSH와 Zhang–Shasha 트리 편집 거리를 사용하며, 죽은 파일 제거와 과거 변경 흔적인 tombstone도 정해진 안전 조건과 오탐 기록 아래 처리합니다. 시연용 invoicing 작업에서는 7개 쓰기 중 2개를 사전에 거부하고 중복 코드 블록 4개와 문서 중복 1개를 0개로 줄였지만, 파일 크기와 고립 파일 문제는 여전히 사람이 해결해야 할 실패 항목으로 남았습니다.
섹션별 상세
용어 해설
- T1/T2 코드 중복 탐지(T1/T2 Clone Detection)
- — 정규화한 토큰에서 동일한 실행 구간을 찾아 코드 복제를 판정하는 방식입니다. CodeEraser는 식별자와 리터럴을 치환하고 주석을 제거한 뒤 50개 이상 토큰의 공통 지문을 탐지해 신규 중복만 차단합니다.
- MinHash/LSH
- — 대규모 데이터에서 유사한 항목을 빠르게 후보화하는 기법입니다. 여러 순열로 만든 MinHash와 밴드 분할을 이용해 문서나 코드의 유사 쌍을 좁힌 뒤 정확한 유사도 계산으로 최종 판정합니다.
- 트리 편집 거리(Tree Edit Distance)
- — 두 구문 트리를 삽입·삭제·변경 연산으로 서로 바꾸는 데 필요한 비용입니다. CodeEraser는 Zhang–Shasha 알고리즘으로 구조적 코드 유사도를 계산하고 TSED 0.85 이상인 후보를 승인합니다.
- Theil–Sen 기울기(Theil–Sen Slope)
- — 여러 관측값 쌍의 기울기에서 중앙값을 취해 추세를 계산하는 강건한 방법입니다. CodeEraser는 최근 512개 점수를 사용해 단일 이상치가 품질 추세를 크게 흔들지 않도록 합니다.
- 품질 래칫(Ratchet)
- — 현재 품질 기준을 저장하고 이후 변경에서 기준보다 나빠지는 증가를 자동으로 거부하는 정책입니다. CodeEraser는 허용 오차를 초과한 성장을 차단하며 기준 재설정에는 명시적인 승인이 필요합니다.
기술
- CodeEraser
- Claude Code
- Rust 1.94.1
- Haskell
- GHC 9.14.1
- tree-sitter 0.27
- SQLite
- Tauri 2
- MinHash/LSH
- Zhang–Shasha tree edit distance
- MCP
- cargo
- Homebrew
- winget
활용 사례
- LLM이 작성하는 코드의 쓰기 전 중복 차단
- Claude Code 프로젝트의 Stop 감사와 세션 품질 점검
- pre-commit·commitmsg·CI에서 코드와 문서 중복 검사
- 파일 크기 기준과 품질 점수의 ratchet 관리
- 고립 파일과 안전하게 제거할 수 있는 중복 문서 탐지
- GUI·CLI·Claude Code plugin·MCP를 통한 저장소 품질 관리
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.