지난주 Claire Giordano와 함께 Talking Postgres 팟캐스트에 출연해 'AI가 소프트웨어 개발을 어떻게 바꾸고 있는가'를 주제로 이야기를 나눴습니다. 무척 인상 깊은 대화였는데, 가볍게 다듬은 대화록에서 특히 기억에 남는 내용 몇 가지를 추려 소개합니다. 참고로 대화록 편집은 Claude에 "말 더듬거림이나 군더더기 표현만 최소한으로 제거해줘"라는 프롬프트를 사용했습니다.
코딩 에이전트의 생산성 지표로 코드 라인 수를 활용하는 것이 때로는 실제로 타당한 이유에 대해 저는 계속해서 논거를 다듬어왔는데, 35:01 부분이 그 최신 버전입니다.
생산성을 코드 라인 수로 측정하는 건 말이 안 된다고 말하는 사람이 많습니다. 저는 사실 동의하지 않는데, 거기엔 명확한 상한선이 있기 때문입니다. AI 이전 시대에 소프트웨어 엔지니어는 하루에 프로덕션 수준의 코드를 수백 줄 정도 작성할 수 있었습니다. 디버깅까지 마친 프로덕션 수준의 코드를 200줄 짜는 날이면 정말 대단히 잘한 하루였고, 보통은 50~60줄 정도였습니다.
에이전트를 활용해 디버깅까지 마친 코드를 하루에 1,000줄 작성할 수 있다면, 코드 품질이 동일하다는 전제 하에 — 즉 유지보수가 가능하고 테스트가 갖춰져 있다면 — 이건 실질적으로 엄청난 발전입니다. 에이전트로 그 수준에 도달하는 건 가능하지만, 상당한 실력과 지식, 그리고 경험이 필요합니다. 바로 그게 시니어 엔지니어의 역량이죠.
저는 혼자서도 에이전트 없이는 불가능했던 훨씬 많은 일을 해낼 수 있습니다. 그렇다면 회사에 엔지니어가 한 명 이상 필요할 이유가 있냐고 물을 수도 있겠죠. 버스 팩터 문제처럼 뻔한 이유 외에도 — 1인 팀은 구조적으로 매우 취약하지만 — 핵심은 이제 병목이 인지 용량으로 바뀌었다는 점입니다. 코드를 백 배 빠르게 쏟아낼 수는 있어도, 백 배 많은 코드를 머릿속에서 따라가는 건 불가능합니다. 그래서 여전히 팀이 필요한 겁니다. 인지 부하를 팀 전체에 분산시켜야 하니까요.
그리고 46:03에 나오는 개념적 무결성(conceptual integrity) 이야기도 인상적이었는데, Claire는 이를 윈체스터 미스터리 하우스에 빗댔습니다!
Simon: The Mythical Man-Month에 '개념적 무결성'이라는 개념이 나옵니다. 잘 설계된 소프트웨어에는 일종의 무결성이 있어서 예상을 벗어나는 부분이 없고, 딱 필요한 영역만 다루며, 모든 것이 맞물려 돌아갑니다. 그런데 코딩 에이전트를 쓰면 이게 훨씬 어려워집니다. 어떤 기능이 떠오르면 프롬프트를 입력하고, 5분 후에 기능이 완성되는 식이니까요. 그러다 보면 소프트웨어에 이상한 혹들이 여기저기 불쑥불쑥 돋아나기 시작합니다.
Claire: 저한테 딱 맞는 비유가 있어요. 윈체스터 미스터리 하우스요.
Simon: 방이 140개나 되는 집이죠. 그 집을 지은 여성은 윈체스터 소총을 발명한 사람의 미망인이었는데, 심령술사가 그 총에 목숨을 잃은 사람들의 원혼에 시달리지 않으려면 집을 영원히 계속 지어야 한다고 했답니다. 그래서 40년 동안 계속 새 방을 덧붙였죠. 코딩 에이전트와 소프트웨어의 문제가 정확히 이겁니다. 방을 추가하는 비용이 훨씬 저렴해졌기 때문에, 계속해서 새 방을 늘려가기가 너무 쉬워진 거예요. 그 결과물은 개념적 무결성이 무너진 것이 되고, 그러면 무언가를 결정하기가 더 어려워집니다.
결국 모든 것이 규율의 문제로 돌아옵니다. 예전에는 시간이 자연스럽게 규율을 강제했습니다. 어떤 기능에 대한 엉뚱한 아이디어가 떠올라도 "좋긴 한데, 일주일은 걸릴 텐데 — 감당이 안 되지, 접어두자"라고 생각했죠. 그게 한 시간이면 끝난다면, 정당화하기가 훨씬 쉬워집니다.
(참고로, 위키피디아 문서에는 심령술사 이야기를 반박하는 신뢰할 만한 출처들도 포함되어 있습니다.)
현재 제 블로그의 장문 아티클만 보고 계신 겁니다. 모든 포스트를 받아보시려면 /atom/everything/을 구독하시거나, 다른 구독 옵션을 확인해보세요.