증강형 코딩: 바이브를 넘어서
(stdy.blog)- 켄트 벡이 최근 증강형 코딩: 바이브를 넘어서(Augmented Coding: Beyond the Vibes) 라는 글을 작성했음
- 켄트 벡 본인이 AI의 도움을 받아 고성능 + 프로덕션 레벨에 가까운 B+ Tree 라이브러리(BPlusTree3)를 Rust와 Python으로 작성한 스토리
- 특히 유용하고 통찰을 느꼈던 3가지 포인트를 요약 & 번역해 소개
증강형 코딩은 바이브 코딩과 뭐가 다른가?
- 바이브 코딩에서는 코드는 신경쓰지 않고 시스템 동작만 신경씀. 에러가 있으면 '이런 에러가 있다'고 얘기하고 고쳐주길 기대
- 증강형 코딩에서는 코드를 신경씀. 코드의 복잡도, 테스트, 테스트 커버리지가 중요.
- 증강형 코딩에서는 기존의 코딩과 마찬가지로 "Tidy Code That Works", 즉 '작동하는 깔끔한 코드'를 중요시함. 단지 예전만큼 타이핑을 많이 하지 않을 뿐
AI가 잘못하고 있다는 3가지 신호
증강형 코딩에서 AI의 중간 결과를 관찰하며, 다음 3가지 신호가 나타나는지 살펴 개입하는 게 중요
- 비슷한 행동을 반복한다 (무한루프 등)
- 내가 요청하지 않은 기능 구현. 그게 논리적인 다음 단계가 맞을지라도.
- 테스트를 삭제하거나 비활성화는 등, AI가 치팅하는 걸로 느껴지는 그 외 모든 신호.
TDD를 돕는 시스템 프롬프트
- 원글 본문이 복사하기 좀 번거로워서 gist에 넣어둠
- 마지막에 Rust 구문만 본인 프로그래밍 언어/프레임워크에 맞게 바꾸시면 어디서나 아주 훌륭하게 재사용할 수 있는 프롬프트로 보임.
맺으며
우리가 사랑하는 이 직업이 사라지고, 코드를 다루는 즐거움이 없어질 거라는 두려움이 많다는 것을 압니다. 불안해하는 것도 당연합니다. 네, '지니'와 함께 프로그래밍하는 것은 분명 변화를 가져오지만, 여전히 프로그래밍입니다. 어떤 면에서는 훨씬 더 나은 프로그래밍 경험이죠. 제가 시간당 내리는 의사결정의 수와 질을 보면, 따분하고 판에 박힌 결정은 줄어들고 더 중대한 프로그래밍 결정은 더 많아졌습니다.
소위 '야크털 깎기(yak shaving)'라 불리는, 본질과 거리가 먼 잡다한 작업들이 대부분 사라집니다. 저는 '지니'에게 커버리지 테스터를 실행하고 코드의 신뢰도를 높일 테스트들을 제안해달라고 했습니다. '지니'가 없었다면 매우 막막한 일이었겠죠. 테스터 실행에 어떤 라이브러리의 어떤 버전이 필요한지부터 알아봐야 했을 테니까요. 아마 두 시간쯤 씨름하다가 포기했을 겁니다. 대신, 저는 '지니'에게 말하기만 하면 되고, '지니'가 세부 사항들을 알아서 처리해 줍니다.