F-Droid 앱 중 LLM이 짠 코드는 얼마나 될까?
How much of F-Droid is LLM generated?
TL;DR Highlight
F-Droid 신규 업데이트 102개 앱의 커밋을 훑어 LLM 흔적을 3단계로 분류했다
Who Should Read
오픈소스 앱이나 라이브러리를 고를 때 LLM 생성 코드 여부가 신경 쓰이는 개발자
Core Mechanics
- LLM 코드는 확실히 못 가려낸다
- 글쓴이는 텍스트만으로는 판별이 정확할 수 없다고 먼저 밝힌다.
- 대신 README, 커밋, 저장소 구성에서 보이는 흔적으로 판단했다.
- 102개 앱을 3단계로 나눴다
- 'Mostly AI'는 LLM 작성 코드가 50% 초과일 것으로 보는 앱이다.
- 'Mostly human'은 50% 미만, 'No signs of AI'는 의심 흔적이 없거나 엄격한 LLM 정책이 있는 앱이다.
- 판단 근거는 겉으로 드러난 흔적이다
- Claude co-author 커밋, 에이전트 설정 파일, 에이전트 PR 수락 같은 것을 봤다.
- AI 아이콘, README의 이모지 남발, 계획용 .md 파일, 1만 줄 넘는 init 커밋도 근거였다.
- 에이전트 인프라가 있으면 자동으로 Mostly AI다
- 글쓴이는 코딩 하네스 안에서는 AI를 책임감 있게 쓸 수 없다고 보고 이 기준을 적용했다.
- 대상은 2026년 9월 12일 업데이트된 102개 앱이다
- 앱 이력은 보지 않고 최근 커밋만 봤다.
- 2014년부터 있던 앱도 최근 커밋이 LLM 작성이면 Mostly AI로 분류했다.
Community Reactions
- 70%는 과대 집계 아니냐는 의견
- 큰 init 커밋 같은 약한 정황만으로 Mostly AI를 붙인 것 같다는 지적이 있었다.
- 업데이트 순으로 뽑으면 릴리스가 잦은 바이브코딩 앱이 더 많이 잡힌다는 의견도 있었다.
- 오분류 사례 제보
- Yubico Authenticator에서 AI 사용 흔적이 거의 안 보인다는 의견이 있었다.
- PipePipe도 커밋이 합리적이고 LLM 티가 없는데 판정 근거가 궁금하다는 의견이 있었다.
- LLM 코드가 문제냐는 반론
- 앱이 잘 돌면 코드 출처는 상관없다는 의견이 있었다.
- 2022년 이전부터 있던 프로젝트가 많아 단순히 AI 생성이라 할 수 없다는 의견도 있었다.
- 실사용 경험
- 1500줄 미만 Rust init 시스템을 로컬 LLM으로 몇 주 만에 만들었고, 테스트로 syscall 값을 커널 소스와 대조했다는 경험이 있었다.
- 2026년부터 코드를 거의 직접 안 쓰고 LLM 코드가 자기 것보다 낫다는 경험도 있었다.
How to Apply
- 쓰려는 의존성의 최근 커밋 20개 훑기
- 도입 전에 GitHub 커밋 목록에서 Co-authored-by: Claude 같은 문구를 찾는다.
- 루트에 CLAUDE.md, AGENTS.md 같은 에이전트 설정 파일이 있는지 본다.
- 의존성 선정 기준에 AI 정책 항목 넣기
- 도입 체크리스트에 LLM 사용 정책, 테스트, 리뷰 여부를 적는다.
- 'AI 흔적 있음'만으로 탈락시키지 말고 리뷰와 테스트 유무로 판단한다.
- 우리 저장소의 AI 사용 공개하기
- README에 AI 사용 범위와 리뷰 절차를 한 단락으로 쓴다.
- 글에서 'AI disclosure'가 판단 근거를 쉽게 해줬다는 사례가 있다.
Try It
# Claude Code 또는 셸에서 실행: 의존성 저장소의 LLM 흔적 간이 점검 (글의 기준을 따라 한 간이 버전)
# 사용법: bash check.sh owner/repo
REPO="$1"
git clone --depth 50 "https://github.com/$REPO" /tmp/check && cd /tmp/check
echo "== Claude/Copilot 공동 작성 커밋 수 (최근 50개) =="
git log -50 --format=%B | grep -ciE "co-authored-by:.*(claude|copilot|codex)"
echo "== 에이전트 설정 파일 =="
ls CLAUDE.md AGENTS.md .claude .cursor .cursorrules 2>/dev/null
echo "== 이어서 해 볼 것: README에서 AI 사용 공개 문구 찾기 =="
grep -niE "(AI|LLM|claude|copilot)" README* | headTerminology
관련 논문
The Judge Can Debias Itself: LLM-as-a-Judge가 스스로 편향을 고치게 하는 법
심사 프롬프트에 편향 경고를 넣거나 스스로 비판시켰더니 21개 중 20개 조합에서 정확도가 올랐다
미국 노동시간의 90%는 AI 벤치마크가 제대로 다루지 못하는 일이다
벤치마크 29개를 직업 과제에 매핑했더니 노동시간 90%가 커버 밖
Postgres 19, AI 코드 리뷰가 버그를 너무 많이 찾아 출시 연기
LLM 코드 리뷰가 버그를 쏟아내 Postgres 19가 11월로 밀리고 기능 8~10개가 빠졌다
StarSkirmish Bench v0.2: LLM이 1시간 만에 짜는 StarCraft 봇 대결
LLM에게 1시간 동안 StarCraft 봇을 짜게 했더니 GPT-6 Astra가 1위
그럴듯한 설명 하나면 멀티모달 LLM 심사위원도 속는다 (JUPE 벤치마크)
정답은 그대로 두고 설명만 붙였더니 MLLM 심사위원의 오답 거절률이 12.7~13.8%p 떨어졌다
신경망은 이미 깔끔하다: polysemanticity의 원인 재해석
뉴런을 직접 들여다봤더니 대부분 한 가지 역할이 있었다는 주장
Linus Torvalds의 첫 LLM 보조 패치 시리즈
Linus가 LLM으로 folio 조회 패치 10개를 만들어 read() 벤치가 10배 빨라졌다