F-Droid 앱 중 얼마나 AI가 만들었을까?
FOSS 앱 개발자이자 학생인 필자가 오픈소스 안드로이드 앱 스토어 F-Droid에 AI(LLM)가 생성한 '바이브 코딩' 앱이 얼마나 많은지 분석한 글입니다. 완전히 판별하는 것은 불가능하지만 AI 생성 아이콘, 성의 없는 README, 코드 리뷰 부재 등의 징후로 판단할 수 있다고 설명합니다.
목차: 서론 / 문제점 / 바이브 코딩 앱인지 어떻게 알 수 있는가? / 나의 편견 / 기준 및 실험 / 앱 목록(Amber, Aria for Misskey, Atmo Engine, Aves Libre, Balance, Baly Groceries Tracker, Bati: Fitness RPG, BayesianBahn, BeatBridge, Binary Eye, BlockDrop, Braincup, BVD, CaptureCap, Casio G-Shock Smart Sync, Chompass, DeltaSync, DuressKeyboard, eQuran, evcc, Fechtkarte, Feeder, Felicity Music Player, FixupXer, Flexify, Forkyz, Gem Wallet, GeoWeather, GitHub Trending & Hacker News, GPTMobile, GymMane, Harp, Hue Spill, invoice/quote/delivery note, KeyStoreViewer, kitshn, Klick'r, Lens HRV, Léon, LetterBox, Libre Contacts Backup, Lissen, MainTask, Mako, MarketMonk, Markleaf, MateDroid, Materialious, MetaGer, Mihrab, Minesweeper, MinkLauncher, motd, N-Zik, neutriNote CE, Nextcloud, Nextcloud Pantry, NFC Alarm Clock, NouTube, NovaDial, Offline Translator, OPNsense Manager, PCAPdroid, Personal Stuff, Phylax, PingOff, PipePipe, PlainApp, Privacy Flip, Queens, ReadBear, Relatrix, ReteClock, ReteKey, Share To InputStick, Shattered Pixel Dungeon, ShelfDroid, ShizuWall, Simple Notes Sync, Sky Map, Snowdrop, Suntimes Calendars, TacticMaster, Tallybook, Tasks.org, Terminator, TigerDuck, TimeLimit.io, Timety, trale, Tuisku, Unciv, Universal Installer, UnlicenseLauncher, Victoria Launcher, Voxscribe, Water Sort, WaveUp, Wikipedia, Wristotle Companion, Xime IME, Yubico Authenticator 등) / 흥미로운 관찰 / brandonp2412 / Codeberg / "건드리지 마라" 앱들 / 통계 및 결론
나는 F-Droid를 사랑한다. F-Droid가 상징하는 가치를 사랑하고, 사용자에게 주는 자유를 좋아한다. FOSS 앱 관리자로서 이 프로젝트 뒤의 사람들에 대해서도 칭찬밖에 할 말이 없다. 내가 빌드 전에 커밋하는 걸 깜빡해서 reproducible build가 몇 번이나 실패했는데도 친절하게 대해줬으니, 어쩌면 너무 착할지도 모른다 😅. 하지만 정말이지, 요즘은 인간이 직접 작성한 소프트웨어를 찾기가 어렵다.
서론
문제점: 가끔 그냥 구경하려고 F-Droid를 연다. 몰랐던 문제를 해결해주는 앱을 발견하거나, 이미 쓰는 것의 더 나은 대안을 찾을 수도 있으니까. 그러던 어느 날 둘러보다가 뻔하고 흉한 AI 생성 아이콘을 가진 앱을 발견했다. 그 앱은 목록에 없고 지적하지도 않겠지만, 궁금해졌다. F-Droid의 얼마나 많은 부분이 AI로 만들어졌을까?
재미로 프로그래밍을 하는 학생에 불과하고 정직한 노동으로 물들지 않은 나로서는, 코딩 세계가 어떤지에 대한 지식을 대부분 자극적인 유튜브 영상과 CS 전문가들의 레딧 게시물에서 얻는다. 그들은 LLM을 신의 화신처럼 묘사하거나 아니면 고급 자동완성 정도로 묘사한다. 둘 다 분명히 틀렸지만, 내가 알고 싶은 것을 파악하는 데는 그다지 도움이 되지 않는다. 요즘 프로그래밍의 실제 상태는 어떤가? 내가 FOSS 소프트웨어를 사용할 때, 그것이 어느 날 오후에 누군가 대충 바이브 코딩한 것일 확률은 얼마나 될까?
바이브 코딩 앱인지 어떻게 알 수 있는가?
요점은—알 수 없다는 것이다. 텍스트에는 어떤 평가라도 정확하게 만들 만큼의 메타 정보가 충분히 담겨 있지 않다. 하지만 내가 첫 문장에서 쓴 em-dash(—)가 아마 여러분 뇌에서 경보를 울렸듯이, 징후는 존재한다. 이렇게 들으면 이 작업이 변덕스럽고 우연에 좌우되는 것처럼 들리겠지만, 특히 LLM 코드 저장소의 경우 징후는 결코 찾기 어렵지 않다.
LLM의 주된 매력은 개발자를 더 게으르게 만든다는 것이다. 그게 사실 핵심이다! 프롬프트만 입력하고 앉아서 편하게 있으면 된다. 그래서 이런 태도가 바이브 코더가 손대는 모든 것에 반영된다는 것을 들어도 놀라지 않을 것이다. README를 직접 쓸 필요가 있나? 웃기고, LLM한테 시키면 되지. 코드 리뷰를 할까? 됐고, LLM이 자기 변경사항을 스스로 리뷰하게 두자.