LLM의 L은 Lying(거짓말)의 L — AI 코딩 도구에 대한 근본적 회의
The L in "LLM" Stands for Lying
TL;DR Highlight
에세이가 LLM 생성 코드와 콘텐츠를 본질적 위조(forgery)로 규정하며, 장인정신(craft) 관점에서 AI 코딩 도구의 한계와 위험을 지적한다.
Who Should Read
AI 코딩 도구(Copilot, Cursor 등)를 일상적으로 쓰고 있지만, 코드 품질과 장기적 기술 역량에 대한 고민이 있는 개발자. AI 도입 여부를 결정해야 하는 팀 리드나 오픈소스 메인테이너에게도 유용하다.
Core Mechanics
- LLM이 하는 일의 본질은 '위조(forgery)'다. 사용자가 직접 만들었을 법한 결과물, 혹은 다른 사람의 결과물을 모방해서 빠르게 찍어내는 것이고, 이 모방물을 진짜 대신 쓰려 할 때 문제가 생긴다.
- 프랑스의 AOC(원산지 통제 명칭) 치즈처럼, 소프트웨어에도 '정품'과 '모조품'의 구분이 필요하다는 비유를 든다. 싸구려 모조품이 범람하면 진짜 제품의 브랜드와 그걸 만드는 전문성 자체가 사라진다는 논리.
- 오픈소스 메인테이너들이 이미 피해를 보고 있다. AI로 대충 만든 PR(슬롭 코드)이 쏟아지면서, 이미 부족했던 기여자 관리 부담이 더 커졌다.
- AI가 아무리 발전해도 소프트웨어 개발의 결과물은 '거의 돌아가는' 수준에 머물고 있다. 몇 년째 LLM 도구가 나오고 있지만 근본적으로 달라진 건 없다는 관찰.
- 새 모델이 계속 나오는 이유 자체가, 이전 모델이 약속한 걸 못 지켰기 때문이다. 하이프가 투자를 부르고, 투자가 더 큰 하이프를 요구하는 순환 구조.
- Copilot이라는 이름 자체가 마케팅 거짓말이라는 지적. 실제로는 co-pilot(부조종사)이 아니라 auto-pilot(자동조종)이고, 사용자가 통제하고 있다는 착각을 심어준다.
- AI를 안 쓰는 것도 완전히 괜찮다는 입장. AI를 안 쓴다고 뒤처지는 게 아니며, 오히려 스트레스가 적고 만족도가 높을 수 있다.
- 게임 업계의 프로시저럴 생성(procedural generation)을 전례로 들며, 자동 생성이 대체로 기대에 못 미쳤다고 주장한다. (단, 이 부분은 댓글에서 강하게 반박됨)
Evidence
- 프로시저럴 생성이 실패했다는 원문 주장에 대해 강한 반론이 나왔다. Minecraft(역대 최다 판매 게임), Valheim, Diablo, No Man's Sky(결국 대성공) 등 수많은 성공 사례가 있으며, 도구 자체가 나쁜 게 아니라 쓰는 사람에 달렸다는 의견.
- 미술사를 전공했다는 한 댓글러가 러다이트(Luddites)의 사례를 들며, 자동화가 품질을 떨어뜨린다는 주장이 역사적으로 맞았다고 지적했다. 중세 유럽의 수제 양모 스카프는 반지를 통과할 정도로 얇고 섬세했는데, 그 기술은 구전으로만 전수되다 영원히 사라졌다. 다만 '옳았어도 그것만으론 충분하지 않았다'고 덧붙였다.
- 실제로 비기술자가 바이브코딩으로 만든 내부 도구가 월 수백 시간을 절약하고 있다는 경험담이 있었다. 코드는 스파게티였지만 이미 임팩트를 내고 있어서 컨설턴트로서 성능만 일부 개선하고 나머지는 그냥 뒀다는 이야기.
- 개발자들이 받아들이기 어려운 현실은, 우리 코드 대부분이 소량의 독창성 + 대량의 반복 보일러플레이트라는 것이라는 의견. 가치는 코드 한 줄 한 줄이 아니라 상위 레벨의 설계와 혁신에 있다는 지적.
- LLM은 '거짓말'이 아니라 '오류(falsehood)'라는 반론도 있었다. 거짓말은 속이려는 의도가 필요한데 LLM에겐 의도가 없고, 그걸 진실로 둔갑시키는 건 사용자의 책임이라는 관점.
How to Apply
- 오픈소스 프로젝트를 운영 중이라면, PR 가이드라인에 AI 생성 코드 관련 정책을 명시하고, AI 슬롭 코드를 걸러내는 리뷰 체크리스트를 만들어라. 예: '이 PR의 코드를 직접 설명할 수 있는가' 확인 항목 추가.
- AI 코딩 도구를 쓸 때 Copilot 모드(자동 수락)가 아니라, 생성된 코드를 반드시 읽고 이해한 후에 반영하는 습관을 들여라. 특히 보안 관련 코드, 에러 핸들링, 엣지 케이스는 AI 출력을 그대로 쓰지 말 것.
- 팀에서 AI 도구 도입을 논의할 때, '보일러플레이트 자동화'와 '핵심 로직 설계'를 명확히 구분하라. AI는 전자에 효과적이지만 후자에서는 오히려 검증 비용이 늘어날 수 있다.
- 내부 도구처럼 수명이 짧고 사용자가 한정된 소프트웨어에는 AI 코딩을 적극 활용하되, 장기 유지보수가 필요한 프로덕션 코드에는 코드 리뷰 기준을 더 높게 잡아라.
Terminology
관련 논문
LLM이 TLA+로 실제 시스템을 제대로 모델링할 수 있을까? — SysMoBench 벤치마크
LLM이 TLA+ 명세를 작성할 때 문법은 잘 통과하지만 실제 시스템과의 동작 일치도(conformance)는 46% 수준에 그친다는 걸 체계적으로 검증한 벤치마크 연구로, AI 기반 형식 검증의 현실적 한계를 보여준다.
Natural Language Autoencoders: Claude의 내부 활성화를 자연어 텍스트로 변환하는 기법
Anthropic이 LLM 내부의 숫자 벡터(활성화값)를 직접 읽을 수 있는 자연어로 변환하는 NLA 기법을 공개했다. AI가 실제로 무슨 생각을 하는지 해석하는 interpretability 연구의 새로운 진전이다.
ProgramBench: LLM이 프로그램을 처음부터 다시 만들 수 있을까?
LLM이 FFmpeg, SQLite, PHP 인터프리터 같은 실제 소프트웨어를 문서만 보고 처음부터 재구현할 수 있는지 측정하는 새 벤치마크로, 최고 모델도 전체 태스크의 3%만 95% 이상 통과하는 수준에 그쳤다.
MOSAIC-Bench:코딩 에이전트의 Compositional Vulnerability 유도 측정
티켓 3장으로 쪼개면 Claude/GPT도 보안 취약점 코드를 53~86% 확률로 그냥 짜준다.
LLM의 거절(Refusal) 동작은 단 하나의 방향(Direction)으로 제어된다
13개의 오픈소스 채팅 모델을 분석했더니, 모델이 유해한 요청을 거절하는 동작이 내부 활성화 공간에서 단 하나의 1차원 벡터 방향으로 인코딩되어 있었다. 이 방향을 제거하면 안전 파인튜닝이 사실상 무력화되므로, 현재 안전 학습 방식이 얼마나 취약한지 보여준다.
LLM의 구조화된 출력(Structured Output)을 테스트하는 새 벤치마크 SOB 공개
스키마 준수 여부만 보던 기존 벤치마크의 한계를 넘어, 실제 값의 정확도까지 7가지 지표로 평가하는 Structured Output Benchmark(SOB)가 공개됐다. 인보이스 파싱, 의료 기록 추출처럼 JSON 출력의 정확성이 중요한 프로덕션 시스템에서 어떤 모델을 써야 할지 판단하는 데 직접적으로 참고할 수 있다.