AI Slop Detector v2.6.1 Self-Audit: 나는 3개의 나쁜 파일을 심었는데 — 잡았나요?
Source: Dev.to
AI 코드는 거의 아무것도 구현하지 않으면서도 “프로덕션‑레디”처럼 보일 수 있습니다.
- 린트 통과.
- 클린 아키텍처 준수.
- 배포 가능.
그런데 실행 경로를 추적해 보면 실제 로드‑베어링 로직이 거의 없습니다.
이것이 AI 슬롭입니다: 깨진 코드는 아니지만 설득력 있게 빈 코드.
저는 AI Slop Detector를 만들어 그 막연한 “뭔가 이상해” 느낌을 검사 가능한 신호로 바꾸었습니다.
그런 뒤 불편한 신뢰성 테스트에 직면했습니다:
도구가 내 레포도 비난할까?
v2.6.1은 신뢰 릴리스
이번 릴리스는 감사 가능성과 안정성에 초점을 맞춥니다:
- 의존성 규칙이 더 이상 “코드 안의 마법”이 아니라 YAML로 옮겨져 동적으로 로드됩니다 (숨겨진 가정 감소).
- 테스트 + 커버리지 강화: 165개의 테스트, 전체 커버리지 85 %, CI 게이트 커버리지 0 % → 88 % 개선.
목표: 도구가 회귀하기 어렵게, 신뢰하기 쉽게 만드는 것입니다.
자체 감사
저는 누구든지 할 수 있는 방식으로 탐지기를 자체 코드베이스에 실행했습니다:
slop-detector --project .
전체 결과: CLEAN
결손 점수: 19.78 (낮을수록 좋음)
전문 용어 팽창: 0.11
원문 보고서 주석: 저는 생성된 그대로 PDF 형태의 전체 자체 검사 보고서를 편집 없이, 검열 없이, 재포맷 없이, 해석적 변경 없이 공개합니다.
“CLEAN”이 완벽을 의미하는 것은 아닙니다.
그 의미는 여기에 충분히 실제 구현이 있어 검토가 가치 있다는 것입니다.
실제 실험: “알려진‑나쁜” 파일 3개를 심어봤습니다
점수만으로는 의심하기 쉬워서, 저는 의도적으로 레포에 세 개의 나쁜 고정물을 추가해 탐지기가 올바른 이유로 작동하는지 확인했습니다.
1) 빈 쉘
0‑라인 파일이 100.00 점수를 받았으며, 보고서는 이를 명확히 설명합니다:
“Empty file: nothing to analyze → remove / implement / mark stub.”
번역: 때때로 코드는 존재하지만 아무 일도 하지 않으며, 이는 눈에 보여야 합니다.
2) 위험한 구조 (structural_issues.py)
점수 71.21, 시스템을 조용히 부패시키는 패턴을 표시합니다:
- 모든 예외를 잡는 catch‑all 오류
- 가변 기본값
- 스타 임포트
- 전역 상태
번역: 코드는 실행될 수 있지만 나중에 신뢰하거나 디버그하기 어려워질 수 있습니다.
3) 버즈워드 + 슬롭 칵테일 (generated_slop.py)
점수 96.77, 다음과 같은 전문 용어를 트리거합니다:
- “state‑of‑the‑art”
- “transformer”
- “optimized”
…그리고 고전적인 슬롭 패턴이 함께 나타납니다.
번역: 인상적인 언어와 약한 실체는 종종 함께 등장합니다.
반전
cli.py 안에 있던 “production‑ready” 라는 제 표현도 플래그되었습니다.
도구는 단순히 코드를 감사한 것이 아니라 주장까지 감사한 것입니다.
왜 이것이 AI 시대 리뷰 문제인가
대다수 도구는 어제의 질문에 답합니다:
- “구문적으로 유효한가?”
- “안전한가?”
- “복잡한가?”
AI 시대 워크플로는 사전 질문이 필요합니다:
여기에 의미 있는 구현이 전혀 없나요?
AI Slop Detector는 판결 기계가 아닙니다.
“보기엔 괜찮은데…” 를 측정 가능한 후속 작업으로 바꾸는 리뷰 신호입니다.
빠른 시작
pip install -U ai-slop-detector
# 단일 파일
slop-detector mycode.py
# 전체 프로젝트 스캔
slop-detector --project .
CI 게이트 모드 (soft / hard / quarantine)
# Soft: 보고서만 출력 (절대 실패 안 함)
slop-detector --project . --ci-mode soft --ci-report
# Hard: 임계값 초과 시 빌드 실패
slop-detector --project . --ci-mode hard --ci-report
# Quarantine: 점진적 적용
slop-detector --project . --ci-mode quarantine --ci-report
한 가지 빠른 리뷰 질문
“이 함수가 래핑하는 것과 실제로 다른 점은 무엇인가?”
답이 구체적인 동작 대신 문서 문자열 약속으로 돌아간다면, 보통 스캐폴딩일 가능성이 높습니다.
직접 사용해 보면
실제 사례를 공유해 주세요:
- 마주친 오탐 사례
- 놓친 설득력 있는 빈 코드
- PR에서 보이는 고정물 아이디어