본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 06. 15. 15:22

AI가 작성한 코드를 추적하는 OSS를 만든 이야기 ── git blame의 AI 버전 「aidiff」

요약

AI 생성 코드가 급증함에 따라 코드 내 AI 작성 여부를 추적할 수 있는 오픈소스 도구 'aidiff'를 소개합니다. git blame처럼 코드의 AI 기여도를 라인 단위로 분석하고 통계를 제공합니다.

핵심 포인트

  • AI 생성 코드의 비율과 트렌드를 시각화하여 제공
  • 명시적 태그, 커밋 메시지, 휴리스틱 분석을 통한 3단계 탐지 방식
  • 파일별 히트맵 및 컨트리뷰터별 AI 사용률 리포트 생성 가능
  • pip 설치를 통해 기존 리포지토리에 즉시 적용 가능

AI가 작성한 코드를 추적하는 OSS를 만든 이야기

과제: 아무도 AI 코드를 추적하지 않고 있다

Claude Code, Cursor, GitHub Copilot — 이제 코드 작성 방식이 근본적으로 바뀌고 있다.

GitHub Octoverse 2025에 따르면, 상용 리포지토리(Repository)의 약 41%가 AI 생성 코드를 포함하고 있다고 한다. 게다가 또 다른 조사에서는 AI가 생성한 코드를 포함하는 PR(Pull Request)은 변경 실패율이 약 30% 높다는 데이터도 나오고 있다.

그럼에도 불구하고, 대부분의 팀은 "어떤 코드가 AI에 의해 작성되었는지"를 전혀 파악하지 못하고 있다.

구체적으로 다음과 같은 문제가 있다:

어떤 파일이 거의 AI 생성인지 알 수 없음 - AI 생성 코드가
제대로 리뷰되고 있는지 추적할 수 없음 - 팀 전체의
AI 의존도 트렌드가 보이지 않음

git blame으로는 "누가 작성했는지"는 알 수 있다. 하지만 "AI가 작성했는지"는 알 수 없다.

이 공백을 메우기 위한 OSS를 만들었다.

aidiff란

git blame의 AI 버전

aidiff scan # AI 코드 비율을 계산하여 표시
aidiff status # 상세한 통계 정보
aidiff report # HTML 리포트 생성

pip 한 번으로 설치 가능하다. 기존 리포지토리에 바로 적용할 수 있다.

설치 및 사용법

pip install aidiff
cd your-repo
maidiff scan

출력 이미지:

╭─────────────── aidiff status ───────────────╮
│ AI Code Ratio: 34.7% │
│ │
...

특정 파일의 라인 레벨(Line level) 추적도 가능하다:

aidiff track src/auth/middleware.py
Line Score Reasons Code
12 0.82 explicit AI tag # ai-generated: Claude
34 0.71 placeholder comment # TODO: Add error handling
...

HTML 리포트도 생성할 수 있다:

aidiff report
# → .aidiff/report.html 이 생성되어 브라우저에서 열림

Chart.js를 통해 AI 코드 비율의 트렌드 그래프, 파일별 히트맵(Heatmap), 컨트리뷰터(Contributor)별 AI 사용률을 확인할 수 있다.

어떻게 작동하는가 — 휴리스틱(Heuristic) 탐지의 메커니즘

aidiff는 3층 탐지 접근 방식을 조합하고 있다.

1. 명시적 태그 (고확도)

# ai-generated
# @ai
# Generated by Claude
...

이러한 태그가 포함된 행은 스코어 1.0 (AI 확정)으로 취급한다.

2. 커밋 메시지 분석

Co-authored-by: Claude, feat(ai): 등의 패턴을 git 로그에서 탐지하여 커밋 단위로 플래그를 세운다.

3. 휴리스틱 분석 (특징량 기반)

AI가 작성하는 코드에는 일정한 습관이 있다. 다음 패턴들을 스코어링한다:

패턴스코어
장황한 변수명+0.4user_authentication_token_validation
...

여기에 추가로 **클러스터 부스트(Cluster Boost)**가 있다. AI 같은 행이 5행 연속으로 이어지는 경우, 그 주변의 스코어도 함께 높아진다. AI는 한 번에 덩어리로 코드를 작성하기 때문에, 고립된 1행보다 연속된 블록의 신뢰도가 더 높다.

스코어 해석

  • 0.0〜0.4: 거의 사람이 작성한 코드
  • 0.4〜0.7: AI의 관여가 의심됨
  • 0.7〜1.0: AI가 작성했을 가능성이 높음

CI/CD 및 git hook에의 통합

pre-commit hook으로 자동 기록

aidiff install
# → .git/hooks/pre-commit に 훅을 설치
# 커밋할 때마다 .aidiff/data.json 이 업데이트됨

GitHub Actions에서 임계값 체크

aidiff init-action
# → .github/workflows/aigate.yml 을 생성

PR의 AI 코드 비율이 70%를 초과하면 자동으로 코멘트가 달립니다. 코드 리뷰 관점에서 "이 PR은 거의 AI 생성물임"이라는 정보가 리뷰어에게 전달됩니다.

CI용 클린 출력도 지원:

aidiff check --ci --threshold 70
# AI ratio: 34.7%
# Files: 42
...

왜 만들었는가

저 자신이 Claude Code를 헤비하게 사용하게 되면서, "이거 나중에 다시 봤을 때 내가 작성한 코드인지 전혀 모르겠는데?"라고 느낀 것이 계기였습니다.

AI 코드를 배제하고 싶은 것이 아닙니다. 오히려 그 반대로, AI 생성 코드를 가시화함으로써 어디에 인간의 리뷰가 필요한지를 명확히 할 수 있다고 생각합니다.

"AI가 작성했으니 신뢰할 수 없다"가 아니라 "AI가 작성했으니 중점적으로 리뷰한다"라는 문화를 만들고 싶습니다.

리포지토리 · 스폰서

💚 GitHub Sponsors (Insiders 모델)

aidiff는 MIT 라이선스로 무료로 사용할 수 있지만, 스폰서에게는 우선적으로 기능을 제공하고 있습니다.

현재 Insiders를 위해 계획 중인 기능:

  • 커스텀 탐지 규칙 (프로젝트 고유의 AI 패턴 정의)
  • 팀 대시보드 (여러 리포지토리의 횡단 집계)
  • Slack / Discord 알림
  • 우선 지원

작은 OSS이지만, AI 시대의 코드 품질 관리에 기여할 수 있다고 믿으며 개발을 계속하고 있습니다. 피드백과 Star도 환영합니다.

Discussion

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0