코드 자체를 만지는 사람
Agent가 낸 코드를 줄 단위로 검토하고, 마음에 들지 않는 부분을 사람이 직접 고친다. 모든 변경이 사람의 손을 거친다.
이 장은 답을 주지 않는다. 코드에서 멀어질수록 더 높은 곳에서 시스템을 볼 수 있지만, 너무 일찍 땅을 떠나면 어느 돌부리에 말이 걸리는지 알 수 없게 된다. 문제는 AI가 코드를 얼마나 많이 쓰는가가 아니라, 그 결과를 판단할 사람은 어디에서 자라는가에 있다.
원문은 Martin Fowler 팀의 Kief Morris가 제시한 세 층을 출발점으로 삼는다. 사람은 Agent의 코드 안에 직접 들어갈 수도 있고, 코드 대신 Harness를 개선할 수도 있으며, 요구만 말하고 완전히 결과를 맡길 수도 있다.
Agent가 낸 코드를 줄 단위로 검토하고, 마음에 들지 않는 부분을 사람이 직접 고친다. 모든 변경이 사람의 손을 거친다.
코드 그 자체보다 Specification, 품질 검사, Workflow, Guardrail을 설계한다. 실행자의 다리를 고치기보다 실행자가 움직이는 구조를 바꾼다.
무엇을 원하는지만 말하고 Agent가 구현과 판단을 대부분 스스로 처리하게 한다. 원문은 이를 Vibe Coding과 연결한다.
In the loop의 사람은 결과가 나쁘면 코드를 고친다.
On the loop의 사람은 다음 결과가 나아지도록 Harness를 고친다.
원문은 Martin Fowler의 우려를 더 날카롭게 옮긴다. Junior Developer의 가장 중요한 속성은 현재 생산량이 아니라 앞으로 Senior Developer로 성장할 가능성이라는 것이다. AI가 Junior의 산출물만 대체한다면 효율일 수 있지만, 성장 경로까지 함께 없애면 미래의 판단력을 당겨 쓰는 셈이 된다.
사람을 코드의 세부에서 빨리 떼어낼수록 현재 생산은 빨라질 수 있다. 그러나 코드가 왜 깨지는지, 아키텍처가 왜 무너지는지, 어느 종류의 오류가 위험한지를 몸으로 배우는 경로도 짧아질 수 있다.
장은 이 문제가 이미 현실의 조직 변화 속에서 드러난다고 서술한다. 하나는 더 많은 초보자를 AI와 함께 일하게 하는 방향이고, 다른 하나는 AI 효율화를 이유로 인력을 줄이는 방향이다. 서로 반대처럼 보이지만 “중간에서 배우는 층이 사라지는가”라는 같은 문제로 묶인다.
AI를 사용하는 인턴의 방식이 흥미롭다는 이유로 확대했다고 서술.
AI 기반 효율 향상을 이유로 든 사례로 제시.
원문은 앞선 사례를 다시 돌아보며 공통점을 찾는다. Harness를 잘 만든 사람들은 모델 사용법만 잘 아는 것이 아니라 자신이 다루는 시스템의 실패 양상을 오랫동안 알고 있었다.
Ghostty의 Harness를 세밀하게 만들 수 있었던 이유를
터미널 에뮬레이터의 세부를 깊게 이해했기 때문이라고 해석한다.
AGENTS.md의 각 줄은 과거 Agent의 실제 오류와 연결된다.
약 100만 줄 규모의 코드 생산을 다룰 수 있었던 이유를 좋은 아키텍처와 몇 달 뒤 폭발할 구조를 구별할 판단력이 있었기 때문이라고 설명한다.
TDD 기반 CLAUDE.md는 수십 년의 소프트웨어 공학 경험 위에서 나왔다.
BPlusTree3의 앞선 두 시도가 복잡성 누적으로 실패하고
세 번째 시도에서 개입 방식을 찾았다는 사례를 다시 든다.
저자는 자신의 사례를 다시 꺼낸다. 수기 코딩 경험 없이 모든 제품을 AI로 만들었고, Harness도 기존 프로그래밍 경험을 이식한 것이 아니라 AI와의 반복적인 상호작용 속에서 자랐다고 서술한다.
정확한 계량값이라기보다 원문의 “상천 시간” 서술을 시각화
저자는 Harness를 설계할 수 있게 된 이유를 타고난 시스템 설계 능력보다 AI의 행동을 오래 관찰한 데서 찾는다. 무엇을 잘하는지가 아니라 언제 흐트러지는지를 반복해서 보았다는 것이다.
원문은 논점을 바꾼다. 중요한 것은 경험의 종류가 아니라 충분한 경험 자체가 Harness 설계의 전제인지 여부다. 그리고 여기에는 지름길이 없다는 방향으로 기운다.
전통적인 소프트웨어 개발에서 판단력을 만드는 반복.
AI 협업 시대에 판단력을 만드는 다른 반복.
CLAUDE.md 작성
고통의 모양은 바뀌었다. 고통의 총량은 크게 줄지 않았을 수 있다.
원문은 이 변화 속에서도 배움의 핵심이 충분한 시간과 충분한 실패라는 점을 놓지 않는다.
원문은 Boris Cherny의 말을 빌려 엔지니어의 핵심 기여를 Judgment로 압축한다. 코드는 Agent가 더 많이 쓸 수 있어도 무엇을 만들지, 어떻게 검증할지, 언제 믿고 언제 반박할지는 별도의 능력으로 남는다.
가능한 구현 중 무엇이 실제로 가치 있는 문제를 푸는지 선택한다.
성공을 어떤 테스트·평가·운영 신호로 확인할지 정의한다.
Agent의 결과가 충분히 신뢰할 만한 근거를 갖췄는지 판단한다.
그럴듯한 결과가 사실은 잘못된 방향일 때 멈추고 다른 길을 요구한다.
원문은 AI 사용이 빠르게 늘고 있지만 완전 위임은 훨씬 적다고 서술한다. 그 간극을 사람과 AI가 함께 일하며 판단을 훈련하는 공간으로 읽는다.
원문이 제시한 수치.
원문이 Anthropic 보고서 수치로 제시.
원문이 같은 맥락에서 제시한 범위.
원문은 코드 생성의 미래를 극단적으로 보여주는 사례로 Karpathy를 든다. 2025년 12월 이후 직접 코드를 쓰지 않고, AutoResearch에서 작은 코드와 Markdown Prompt를 결합해 대량의 실험을 자동화했다고 서술한다.
한 사람과 Harness가 전통적으로 팀이 수주 동안 할 법한 실험량을 짧은 시간에 밀어붙이는 사례로 제시된다.
원문은 이 사례를 “누구나 같은 생산성을 얻는다”는 증거로 쓰지 않는다. 어떤 실험을 돌릴 가치가 있는지, 어떤 결과를 더 파고들지, 무엇이 발견이고 무엇이 noise인지 판단하는 연구 직관이 Harness의 바깥에 존재한다고 강조한다.
장의 끝에서 원문은 새로운 피드백 루프를 던진다. 2026년 4월 24일부터 GitHub Copilot Free와 Pro 사용자의 상호작용 데이터가 기본적으로 모델 학습에 사용된다고 서술하며, Harness와 Instruction Style 자체가 미래 모델의 데이터가 될 수 있다고 지적한다.
밑바닥 구현을 직접 경험하지 않고도 충분히 좋은 아키텍처·테스트·제약을 설계할 수 있는지 장은 답하지 않는다.
다른 종류의 경험이 판단을 만들 수 있다는 사례는 있지만, 그 경험을 얼마나 재현 가능하게 교육할 수 있는지는 열려 있다.
사람과 AI가 함께 판단하는 중간 영역이 줄어들 때 다음 세대가 실패를 충분히 경험할 장소도 줄어드는지 묻는다.
모델이 사람의 Instruction Style까지 학습하는 순환 속에서 결국 더 중요한 역할이 “타는 사람”인지 “고삐를 만드는 사람”인지 다시 질문한다.
원문은 이 질문들에 답하지 않는다.
다만 한 가지는 분명하게 말한다.
Harness를 빨리 배우는 지름길은 없다.
충분히 많이 해보고, 충분히 많이 실패하는 시간을 건너뛸 수 없다.
고삐는 말을 타지 않는 사람이 만들 수 있다.
그러나 말이 어디에서 놀라고,
어느 비탈에서 미끄러지는지 전혀 모르는 사람이
좋은 고삐를 만들기는 어렵다.
그렇다고 모든 사람이 평생 말의 발굽만 보아야 하는 것도 아니다.
어느 순간에는 눈을 들어 길 전체를 보아야 한다.
문제는 언제 올라갈 것인가다.
너무 오래 아래에 있으면 시스템을 못 보고,
너무 빨리 위로 올라가면 밑바닥의 이유를 잃는다.
그래서 다음 세대의 Harness를 만드는 일은
새로운 도구를 가르치는 일만으로 끝나지 않는다.
충분히 실패할 시간과, 실패를 판단으로 바꿀 자리를 남기는 일까지 포함한다.