AI가 같은 실수를 반복하는 이유 — 흉터를 새겨 넣는다는 아이디어
프런티어 LLM은 교과서 코드에는 강하지만 프로덕션에서 무너진다. 실패 경험을 '합성 흉터'로 코드화해 자율 코딩 에이전트에 심은 51건의 실전 테스트 결과를 정리했다.

Why AI Keeps Making the Same Coding Mistakes—And How Teaching It Pain Gives It Wisdom
Frontier LLMs excel at textbook code but fail in production. Here is how Synthetic Scars and biological pain give autonomous coding agents real wisdom.
개요 #
Randal L. Schwartz가 자율 코딩 에이전트에 "흉터"를 심는 실험 결과를 공개했다. 핵심 주장은 단순하다. 프롬프트에 금지 규칙을 아무리 늘려도 AI는 같은 실수를 반복하지만, 실패 경험을 정해진 형식으로 코드화해 영구 저장소에 남기면 재발률이 0이 된다는 것이다.
두 개의 실제 코드베이스에서 51건의 작업을 연속으로 처리하며 측정한 수치도 함께 내놨다. 반복 실패율 40~50%가 0.0%로, 자율 1차 통과율은 24%에서 52.9%로 올라갔다. 누적된 흉터는 185건이다.
Schwartz는 이 아키텍처를 Synthetic Scars(합성 흉터)라 부르고, 수학적 정식화와 데이터셋을 담은 논문을 arXiv·ResearchGate 프리프린트로 준비 중이라고 밝혔다.
전교 1등 인턴이 첫날 서버를 내리는 이유 #
원문은 현재 AI 코딩 도구의 상태를 전교 1등 인턴 역설(The Straight-A Intern Paradox) 이라 이름 붙였다. 복잡한 알고리즘 문제를 던지면 3초 만에 깔끔하게 들여쓰기된 코드가 쏟아지고, 관용적 표현에 친절한 주석까지 붙는다. 장난감 수준의 단위 테스트는 무난히 통과한다.
문제는 그 코드를 살아 있는 프로젝트에 새벽 3시에 배포한 뒤부터다. Schwartz가 꼽은 전형적인 실패는 이렇다.
- 사용자가 버튼을 빠르게 두 번 누르는 상황을 잊는다.
- 실시간 데이터 스트림을 열어놓고 닫지 않아, 모바일 앱이 조용히 메모리를 흘리다 죽는다.
- 모든 네트워크 요청이 50밀리초 안에 돌아온다고 가정해, 사용자가 지하철 터널에 들어가는 순간 화면이 깨진다.
- 가장 고약한 건 마지막이다. 월요일에 지적하면 정중히 사과하고 그 줄을 고친 다음, 목요일에 다른 파일에서 똑같은 실수를 다시 한다.
원인으로 지목된 건 학습 데이터의 날씨다. 지금의 프런티어 모델은 인터넷의 튜토리얼, 수업 과제, 블로그 글, 숙제 저장소를 사실상 전부 먹었다. 그 세계에서는 입력이 항상 유효하고 DB는 끊기지 않으며, 앱을 3주 동안 백그라운드에 방치하는 사람도 없다. 컴퓨터 과학에서 말하는 happy path다.
교과서가 happy path를 가르치는 건 설명의 명료함 때문이다. 하지만 실제 프로덕션 엔지니어링의 95%는 sad path — 하드웨어 결함, 경쟁 조건, 메모리 제약, 예측 불가능한 사용자 행동이 뒤섞인 영역이라는 게 원문의 진단이다. 그래서 AI는 코드를 쓸 때 학습 데이터에서 가장 흔한 패턴, 즉 종이 위에서 그럴듯해 보이는 초보자 친화적 코드로 자연스럽게 끌려간다.
"그거 하지 마"가 통하지 않는 두 가지 이유 #
이 결함을 발견한 팀의 첫 반응은 대개 규칙 문서다. "상태 컨테이너에 가변 리스트를 쓰지 마라", "스트림 구독은 반드시 취소하라", "비동기 경계를 넘어 공유 상태를 변경하지 마라" 같은 경고를 프롬프트 파일에 채워 넣는다. 원문은 이 방식이 거의 항상 실패한다고 본다.
첫 번째는 분홍 코끼리 함정이다. "분홍 코끼리를 절대 떠올리지 마"라는 말을 들으면 가장 먼저 떠오르는 게 분홍 코끼리다. LLM은 통계적 토큰 연관으로 작동하기 때문에, 부정 명령으로 지시문을 채우면 오히려 금지된 X와 Y의 토큰이 주의를 지배한다. 복잡한 다단계 문제를 푸는 인지적 압박 아래에서 모델은 금지 패턴에 고착되거나, 지금 상황은 "특수한 예외"라고 스스로 합리화하곤 한다.
두 번째는 통계적 기억상실이다. 새 대화창을 열면 에이전트는 완전한 백지 상태로 깨어난다. 어제의 세 시간짜리 디버깅, 급한 롤백, 깨진 릴리스, 항의 메일 — 아무것도 남아 있지 않다. AI에게 모든 작업은 첫날이다. 원문은 이 상태를 영구적인 〈사랑의 블랙홀(Groundhog Day)〉이라 표현했다.
뜨거운 난로: 베테랑에게만 있는 것 #
경력 30~40년의 엔지니어를 풀 리퀘스트 앞에 앉히면 흥미로운 일이 벌어진다. 컴파일해보지도, 로직을 한 줄씩 따라가지도 않은 상태에서 갑자기 움찔하며 코드 한 블록을 가리킨다. "안 돼. 이거 프로덕션에서 터진다."
원문은 그 직관의 근거로 1994년 신경과학자 Antonio Damasio의 신체 표지 가설(Somatic Marker Hypothesis) 을 든다. 인간의 의사결정은 차가운 단계별 논리만으로 이뤄지지 않는다. 어릴 때 달궈진 난로를 만진 것처럼 고통스러운 실패를 겪으면, 몸과 뇌가 그 경험을 내장 감각적 표지로 기록한다. 다음에 손이 난로 쪽으로 가면 열역학을 계산하지 않는다. 의식적 분석이 시작되기도 전에 신경계가 손을 뒤로 잡아챈다. 몸이 화상을 기억하는 것이다.
베테랑 개발자의 뇌는 그런 흉터 조직으로 덮여 있다. 인덱스 없는 쿼리 하나로 1998년에 겪은 서비스 장애, 20분 만에 배터리를 말려버린 2011년의 메모리 누수, 금융 원장을 망가뜨린 2020년의 경쟁 조건.
AI에는 그 흉터가 없다. 통증도, 신체 표지도, 움찔하는 반응도 없다. 매일 아침 달궈진 난로에 즐겁고 호기심 가득한 태도로 다가간다. 그래서 원문이 내놓는 처방은 더 두꺼운 규칙집이 아니라 흉터다.
Photo by Александр Максин on Pexels
합성 흉터의 해부학 #
Schwartz 팀이 만든 시스템은 에이전트에 인공적인 신체 표지를 심는다. 이 흉터는 정중한 제안이 아니라 넘을 수 없는 인지적 장벽이고, 추상적 경고를 즉각적이고 협상 불가능한 생존 반사로 바꾸는 장치다. 모든 흉터는 세 부분으로 엄격하게 코드화된다.
- The Wound(상처) — 과거에 우리를 태운 실제 재난. 크래시 트레이스, 메모리 누수, 손상된 이미지 같은 구체적 사건.
- The Trap(함정) — 표면적으로 깔끔해 보여서 AI 모델이 즐겨 생성하는, 교과서풍의 유혹적인 지름길.
- The Permanent Reflex(영구 반사) — 코드를 쓰거나 머지하기 전에 반드시 존재해야 하는, 협상 불가능한 방어 불변식.
원문이 든 리액티브 UI 예시를 따라가 보면 이해가 빠르다. 상처는 이미지 다운로드 중에 화면을 이탈했을 때, 백그라운드 작업이 이미 파괴된 UI 요소를 갱신하려다 발생한 치명적 런타임 예외다. 함정은 데이터가 도착한 시점에 UI 컴포넌트가 여전히 마운트되어 있는지 확인하지 않고, 백그라운드 future에 표준 콜백을 그대로 붙이는 순진한 패턴이다. 영구 반사는 비동기 작업에서 상태 갱신을 디스패치하기 전에 명시적 가드 검사로 생명주기 유효성을 확인하는 것이다. 화면이 죽었으면 페이로드는 즉시 버린다.
이렇게 기억을 구조화하는 건 AI에게 일반론을 암기시키는 일과 다르다. 절벽을 보여주고, 절벽으로 이어지는 매력적인 지름길을 보여준 다음, 부러지지 않는 안전 레일을 손에 쥐여주는 방식이다.
잠자는 동안 배우기 — Step 21 #
생물학에서 학습은 깨어 있을 때만 일어나지 않는다. 잠들면 뇌는 서파수면에 들어가고, 이때 기억 응고화가 진행된다. 해마가 하루의 사건을 재생하고 생존에 중요한 교훈을 추출해 신피질에 영구적으로 새긴다. 다음 날 그 교훈은 기본 본능의 일부가 되어 있다.
원문 팀은 이 과정을 워크플로에 그대로 옮겨 Step 21: The Neocortical Replay라 이름 붙였다. 에이전트는 작업을 끝냈다고 티켓을 "Done"으로 바꾸고 사라질 수 없다. 세션이 닫히기 전 강제 사후 검토를 거친다.
- 부검 — 전체 궤적을 되돌아본다. 컴파일러가 어디서 소리를 질렀나, 테스트 스위트는 어디서 실패했나, 예상 못 한 놀람은 무엇이었나.
- 증류 — 한 번도 본 적 없는 새로운 실패 양상에 부딪혔다면, 그 경험을
Wound·Trap·Reflex3부 형식으로 정제한다. - 응고화 — 새 흉터를 프로젝트의 영구 제도적 기억 저장소에 직접 커밋한다.
다음 날 아침 완전히 새로운 대화창에서 깨어난 에이전트는 계획 단계에서 갱신된 흉터 카탈로그를 자동으로 참조한다. 어제의 에이전트가 배운 교훈이 오늘의 에이전트에게는 깨지지 않는 본능이 된다. 조직은 〈사랑의 블랙홀〉에서 빠져나와 누적되는 제도적 지혜를 쌓기 시작한다.
51건의 실전 성적표 #
Schwartz 팀은 철학적 비유에서 멈추지 않고, 이 아키텍처를 51건의 연속된 실제 소프트웨어 엔지니어링 작업에 투입해 장기 추적했다. 합성 과제나 고립된 벤치마크가 아니라 두 코드베이스의 프로덕션 티켓이었다. 하나는 전 세계 Flutter 개발자가 쓰는 공개 오픈소스 리액티브 상태 프레임워크(BlocSignal), 다른 하나는 산업용 지반 공학 텔레메트리와 공간 센서 검사, 법적 엔지니어링 인증 기준을 다루는 미션 크리티컬 엔터프라이즈 모노레포다.
| 지표 | 기존 AI 코딩 | 합성 흉터 에이전트 | 실질적 영향 |
|---|---|---|---|
| 반복 실패율 | 약 40~50% | 0.0% | 흉터로 코드화된 실수는 51건의 티켓 전체에서 단 한 번도 재발하지 않았다. |
| 자율 1차 통과율 | 약 24% | 52.9% | 복잡한 티켓을 첫 시도에 깔끔히 끝낸 비율이 두 배가 됐다. |
| 제도적 기억 | 0건 | 185건 코드화 | 비동기 경쟁, 메모리 누수, 생명주기 버그를 막는 면역계가 계속 자란다. |
14,600번의 사고 과정에서 찾은 78번의 선회 #
가장 흥미로운 근거는 인지적 편향 전환 텔레메트리(Cognitive Deflection Telemetry) 쪽이다. 팀은 전용 분석 도구를 만들어, 에이전트가 도구를 실행하거나 코드를 쓰기 전에 생성하는 내부 숙고 독백 14,600여 개를 들여다봤다.
거기서 궤적이 꺾인 사례 78건을 찾아냈다. 선회는 대체로 같은 순서를 밟았다. 에이전트가 먼저 교과서풍의 순진한 지름길을 초안으로 쓰기 시작한다. 그러다 기억 컨텍스트에 있는 코드화된 흉터와 충돌한다. 그리고 내부 사고 흔적에서 스스로 멈춘다. "잠깐. SCAR-ASYNC-03에 따르면 이렇게 하면 화면이 언마운트될 때 구독이 누수된다. 가드가 걸린 리스너를 써야 한다." 그다음 순진한 접근을 버리고, 실전에서 검증된 해법을 첫 시도에 써낸다.
원문은 이것을 뜨거운 난로에서 손을 빼는 행동의 계산적 등가물이라고 설명한다. AI가 과거의 시뮬레이션된 화상을 느끼고 스스로 안전한 쪽으로 방향을 틀었다는 것이다.
프롬프팅 너머, 신뢰의 문제 #
지금 AI 논의는 토큰 속도, 컨텍스트 윈도 크기, 객관식 수학 벤치마크 점수 같은 경마식 지표가 지배한다. 하지만 원문의 지적대로, 신뢰성 없는 지능은 엔지니어링 리더에게 쓸모가 없다. 시간당 2,000줄의 훌륭한 코드를 쓰는 인턴이 자정에 고객 DB를 조용히 망가뜨린다면 그건 자산이 아니라 부채다.
소프트웨어 엔지니어링은 타이핑 속도의 문제였던 적이 없다. 협조적이지 않은 혼란한 세계에서 살아남는 시스템을 만드는 경험적 길드 기술이었고, 지난 50년간 인간 엔지니어는 잠 못 드는 밤과 긴급 패치, 상한 자존심으로 그 지식의 값을 치렀다. 원문의 마지막 문장은 그 대가를 에이전트에게 물려주자는 제안이다. 세상이 깨끗하고 화창한 교실인 척하는 에이전트가 아니라, 폭풍을 존중하는 에이전트가 필요하다는 것.
시리즈 후속편 #
이 글은 Synthetic Scars 시리즈의 1부다. 원문 저자는 후속 편 계획도 함께 예고했다.
- 2부: Why AI Coding Agents Crash at 3 AM — happy-path 신기루와 강제 연속성 결함
- 3부: The Physics of Socratic Prompting — 신체적 회피 반응, 체스 알파-베타, NLP 메타 모델
- 4부: Giving AI Pain — 합성 흉터의 아키텍처와 Rapid-Regret Miner
- 5부: Zero Repeat Regressions — 골든 메트릭과 에이전트 신뢰의 미래
- 6부: The Proscriptive Inversion — 무엇을 잊어도 되는가, 부정 규칙이 늘어나는 건 왜 패배인가
준비 중인 프리프린트 정보도 함께 공개됐다. 제목은 Synthetic Scars: Mitigating Statistical Amnesia and Plausibility Bias in Autonomous Coding Agents via Asymmetric Barrier Topologies and Episodic Consolidation이고, 저자는 Randal L. Schwartz, 상태는 arXiv/ResearchGate 프리프린트 준비 중이다.
이 글은 위 출처를 바탕으로 한국 독자를 위해 재작성한 기사입니다. 원문의 사실과 수치에 근거하며, 별도의 견해를 포함하지 않습니다.
