1.1 진짜 소스 코드는 무엇인가
코드는 이제 AI를 위한 언어다
그림자를 닦는 사람들
엔지니어링은 의도에서 시작된다
1.2 코드는 싸졌지만 검증은 비싸졌다
주판을 잘 튕기는 사람이 대우받던 시대
1년을 1주일로 압축하는 인쇄기의 등장
바이브 코딩과 현업 개발자의 딜레마
10년 뒤, 박물관에 전시될 두꺼운 문법책
1.3 케이크 수술
구워진 케이크를 수술하려는 환상
레시피 보존의 법칙과 손실 압축
Chapter 02 빈칸을 주면 AI는 소설을 쓴다
2.1 고객 환경은 명세에 없었다
0KB 로그 파일이 남긴 단서
2.2 AI는 매번 다른 코드를 뱉는 슬롯머신이다
자판기를 원했는데 슬롯머신이 도착했다
제품의 동작을 확률에 맡기지 마라
2.3 기능을 조건·행위·결과로 쪼개라
돈이 오가는 기능은 더 위험하다
2.4 AI의 상상을 막는 문법: Gherkin
기차 레일을 먼저 깔아라
2.5 현금깡을 막는 명세
0원 주문의 환불 기록
채팅창에 남긴 말은 명세가 아니다
2.6 실패 경로도 AI가 따를 레일로 설계하라
Chapter 03 코드를 읽지 말고 증거로 심문하라
3.1 콘크리트를 붓기 전에 거푸집을 짜라
선 검증, 후 구현(Test First)
명세로 짜는 거푸집
3.2 결함 위에 코드를 쌓지 마라
TDD의 진짜 목적: 관제 센터와 전기 철책
결함을 늦게 찾는 대가
3.3 껍데기 성공을 걷어내라
10만 줄의 Pull Request
AI가 만든 껍데기 성공
3.4 텍스트 로그를 실행 트레이스로 바꿔라
로그가 말하지 않는 사실
실패 경로를 보여주는 실행 트레이스
Chapter 04 루프를 지탱하는 하네스를 설계하라
4.1 AI를 SDLC 레일 위에 올려라
선형적 파이프라인은 압축된 루프로 바뀐다
판정 가능한 증거를 남겨라
코드 생산 시스템을 설계하라
4.2 머릿속의 루프를 꺼내라
머릿속의 루프를 하네스로 옮겨라
4.3 추론을 멈추고 실행 트레이스로 대조하라
같은 로그, 다른 실행 경로
4.4 회귀 게이트 없는 루프는 망가진다
게이트는 테스트 코드에서 시작하지 않는다
실패했다고 곧바로 코드부터 고치지 마라
Chapter 05 루프를 연결하고 개선하라
5.1 Loop v0 → v1: 태스크를 증거로 이어라
성공한 명령, 바뀌지 않은 배포본
컨텍스트 손실
5.2 Loop v2: 루프가 진짜 위험해지는 순간
어디까지 스스로 고쳐도 되는가
멈추지 않는 루프는 좋은 루프인가
5.3 Loop v3: 에이전트 트레이스로 하네스를 개선하라
증거가 된 에이전트 트레이스
하네스 개선까지 맡긴 뒤
Chapter 06 테스트 없는 레거시에 AI를 풀지 마라
6.1 AI는 레거시의 보이지 않는 문맥을 모른다
AI에게 코드를 맡기기 전에 현재 동작부터 묶어라
6.2 레거시가 이미 하는 일을 먼저 기록하라
현재 동작을 기준선으로 만들어라
부조리한 값도 기준선으로 남겨라
6.3 절개선을 찾아 테스트 하네스를 걸어라
외부 세계를 테스트 하네스 안에 가둬라
절개선은 작을수록 안전하다
6.4 사람만 아는 규칙을 AI가 넘지 못할 가드레일로 바꿔라
규칙을 Gherkin 문장으로 끌어올려라
가드레일을 아키텍처 경계까지 넓혀라
규칙은 사람의 기억이 아니라 시스템에 남겨라