AI 코딩 에이전트를 쓰다 보면 이런 경험을 한다. PR을 열어보면 코드가 놀라울 정도로 정돈되어 있다. 함수 분리도 깔끔하고, 주석도 친절하고, 파일 구조도 논리적이다. 머지하고 배포한다. 그리고 며칠 뒤 예상치 못한 버그 리포트가 들어온다.

GeekNews에 flamehaven01님이 공유한 AI-SLOP Detector 3.1.1은 바로 이 지점을 공략하는 도구다. AI 에이전트가 만든 코드에서 “겉보기엔 괜찮은데 실제로는 불안한 코드”를 정적으로 분석해 잡아낸다.

왜 이 주제가 눈에 띄었나

린터와 타입 체커는 이미 널리 쓰이고 있다. 하지만 이들은 코드의 형식적 정합성을 검사할 뿐, 구현의 밀도는 판단하지 않는다. AI가 짠 코드의 핵심 문제는 형식이 아니라 내용이다. 함수 시그니처는 완벽한데 본문이 return {}이고, 모듈 구조는 그럴듯한데 실제 로직은 helper 함수 여러 개에 흩어져 있는 식이다. 이 문제를 전문적으로 탐지하는 도구가 나왔다는 점이 의미 있다.

핵심 내용 요약

AI-SLOP Detector가 탐지하는 대표적인 패턴은 다음과 같다.

  • Stub 구현: 함수는 있지만 본문이 pass, return {}, return []처럼 형태만 갖춘 코드
  • Phantom import: 존재하지 않는 패키지나 잘못된 모듈을 import하는 코드. optional dependency와 구분해서 탐지
  • 과장된 주석/용어: 주석은 거창한데 실제 코드는 빈약한 경우
  • Fragmented god function: 복잡한 함수를 helper 여러 개로 쪼개 겉보기엔 깔끔하게 숨기는 패턴
  • Placeholder 변수명: r1, r2, ..., r12처럼 의미가 빈약한 변수명 남발

3.1.1 버전에서 점수 모델을 가중 기하평균(GQG) 기반으로 전환한 점이 눈에 띈다. 한두 개 지표가 좋으면 전체 점수가 부풀려지던 문제를 막았다. 또 history tracking 기능이 추가되어 실행 이력을 바탕으로 false positive와 실제 문제를 구분하는 self-calibration이 들어갔다.

CLI, JSON 출력, VS Code 확장, CI gate까지 지원하므로 기존 워크플로우에 바로 끼워 넣을 수 있다.

실사용자에게 중요한 이유

AI 코딩 에이전트 사용이 일상화되면서 코드 리뷰의 성격이 바뀌고 있다. 예전에는 “이 로직이 맞는가”를 중심으로 리뷰했다면, 이제는 “이 코드가 실제로 구현되어 있는가”를 먼저 확인해야 한다. AI-SLOP Detector는 바로 이 첫 번째 질문을 자동화해준다.

특히 다음 상황에서 즉시 도입 가치가 있다.

  • CI 파이프라인: PR 생성 시 자동으로 AI-SLOP 점수를 계산해 게이트 통과 여부를 결정
  • 에이전트 출력 검증: Claude Code, Cursor, Codex 등으로 생성된 코드를 커밋 전에 1차 필터링
  • 코드 베이스 점검: 기존 코드 중 AI가 작성했을 가능성이 높은 부분을 retroactively 탐지

지금 바로 볼 포인트

도구의 철학이 흥미롭다. “AI 코드를 배척하자”가 아니라 “AI 코드의 품질을 검증하자”다. 이건 현실적이다. AI 코딩 에이전트를 안 쓸 수는 없고, 그렇다고 맹신할 수도 없다면, 검증 레이어를 하나 더 두는 게 합리적인 선택이다.

SPAR-Code 기반 adversarial validation이 추가되었다는 점도 주목할 만하다. 이전 버전을 우회하는 회피 패턴을 더 잘 잡는 방향으로 발전하고 있다는 뜻이다. AI가 점점 더 “린터를 통과하기 위해” 코드를 짜는 경향이 강해지는 만큼, 분석 도구도 그에 맞춰 진화해야 한다는 요구가 반영된 결과로 보인다.

마무리

AI 코딩 도구의 보급 속도를 생각하면, 코드 품질 검증 도구의 수요도 같은 속도로 커질 수밖에 없다. AI-SLOP Detector는 그 수요를 구체적으로 해결하는 도구다. 아직 Python에 한정되어 있다는 제약이 있지만, 접근 방식 자체는 언어 무관하게 적용 가능한 개념이다.

AI 에이전트로 코드를 짜고 있다면, 오늘产出물에 return {}이 몇 개나 있는지 한번 확인해보자. 생각보다 많을 수 있다.