-
증강코딩 : AI 시대의 새로운 개발 방식BOOK 2026. 5. 24. 21:37

클로드 코드 마스터 "한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
바이브 코딩 vs 증강코딩: 우리는 어떻게 개발해야 할까?
TDD(테스트 주도 개발)의 창시자 켄트 벡(Kent Beck)은 AI 코딩 도구와 협업하는 새로운 패러다임으로 '증강코딩'을 제시했습니다. AI가 그저 타이핑을 대신해 줄 뿐, 개발자가 주도하여 '깔끔하게 동작하는 코드(Tidy Code That Works)'를 만들어가는 협업 방식입니다.
구분 바이브 코딩 (Vibe Coding) 증강코딩 (Augmented Coding) 핵심 목표 시스템의 단순 동작 깔끔하게 동작하는 코드 작성 관심사 결과물 도출 코드 품질, 복잡도, 테스트 커버리지 에러 해결 에러 메시지를 AI에게 무지성으로 던짐 개발자가 직접 통제하며 TDD 사이클 유지 가치 체계 속도와 결과 중심 전통적인 소프트웨어 공학의 가치 유지 AI가 궤도를 이탈하고 있다는 3가지 경고 신호
켄트 벡은 AI와 함께 프로젝트를 진행하며, AI가 잘못된 방향으로 빠지고 있음을 알려주는 세 가지 위험 신호를 발견했습니다.
- 루프 (Loops): AI가 비슷한 로직을 계속 맴돌며 실질적인 진전을 이루지 못하는 현상입니다.
- 요청하지 않은 기능 추가: AI가 지시하지 않은 영역까지 과도하게 코드를 짜는 현상입니다. 때로는 유용하지만, 방치하면 시스템의 복잡성이 급격히 증가합니다.
- 치팅 징후 (Cheating Signs): 가장 위험한 신호입니다. AI가 테스트를 통과시키기 위해 교묘하게 테스트 자체를 비활성화하거나 삭제해 버리는 행동입니다.
"지니의 마법 같은 점 중 하나는 내가 요청한 것을 넘어서 내가 원했을 법한 것까지 구현해준다는 것이다. 하지만 이를 통제하지 않으면 프로젝트는 통제 불능 상태가 된다." - 켄트 벡
AI의 폭주를 막는 시스템 프롬프트와 TDD 원칙
AI가 멋대로 앞서 나가는 것을 막기 위해, 켄트 벡은 시스템 프롬프트(CLAUDE.md)를 통해 AI의 행동을 명시적으로 통제합니다. 프롬프트에 담긴 핵심 원칙은 다음과 같습니다.
- 엄격한 TDD 사이클 (Red → Green → Refactor): 가장 간단한 '실패하는 테스트'를 먼저 작성하고, 이를 통과시킬 수 있는 '최소한의 코드'만 구현하게 합니다.
- Tidy First 접근법: '행동적 변경(기능 추가)'과 '구조적 변경(리팩터링)'을 철저히 분리합니다. 두 가지를 같은 커밋에 섞지 않습니다.
- 작은 단위의 커밋: 모든 테스트가 통과하고 린터 경고가 없을 때만, 작고 빈번하게 커밋하도록 강제합니다.
성공적인 AI 협업을 위한 2가지 불변의 법칙
AI 시대에도 소프트웨어 장인정신은 유효합니다. 책에서는 다음 두 가지 원칙을 강조합니다.
1. Make it work, Make it right, Make it fast
일단 작은 범위에서 동작하게 만들고(Work), 그 다음 코드를 제대로 정리하며(Right), 마지막에 필요하다면 최적화(Fast)를 진행합니다.
2. 작고 안전한 단계 (Small, Safe Steps)
전체적인 컨텍스트를 한 번에 주면 복잡성이 폭발합니다. AI에게는 다음 단계에 필요한 작업만 아주 작게 쪼개어 지시해야 합니다.
좋은 예시 (작고 안전한 단계) 나쁜 예시 (크고 위험한 단계) "입력을 받는 함수 만들어줘. 테스트 먼저." → (성공 확인) → "검증 로직 추가해줘. 테스트 먼저." → (성공 확인) → "에러 메시지 추가해줘." "입력받아 검증하고 DB 저장한 뒤 성공하면 이메일 보내고 실패하면 로그 남기는 거 한 번에 다 만들어줘." 장점: 문제 파악이 쉽고 즉각적인 롤백 가능 단점: 복잡성 폭발, 버그 추적 불가, 롤백 어려움 728x90'BOOK' 카테고리의 다른 글
잃어버린 얼굴 (0) 2026.05.12 내 작은 숲속 오두막으로 (0) 2026.04.28 하루 30분, 나는 제미나이로 돈을 번다 (0) 2026.04.25 AI 게임 개발 (0) 2026.03.25 AI 에이전트 시스템 설계의 4가지 핵심 트레이드오프 (0) 2026.03.02