Trawling

'AI가 개발자를 대체한다'는 글 500편을 읽었다 — 모두 같은 3가지 실수를 범하고 있었다

30일간 실제 프로덕션 SaaS의 모든 코드를 AI로 작성한 실험 후, 저자는 'AI가 개발자를 대체할 것'이라는 글 500편을 분석했습니다. 낙관론과 비관론 모두 코드 생성을 직업 전체로 착각하고, 주니어-시니어 사다리가 고정돼 있다고 가정하며, 데모를 근거로 미래를 외삽한다는 세 가지 공통된 오류를 지적합니다.

본문

저자는 한 달간 실제 프로덕션 환경의 SaaS를 자신이 직접 한 줄도 타이핑하지 않고 AI가 100% 코드를 작성하게 하는 실험을 진행했습니다. 그 후 '개발자는 크리스마스까지 obsolete가 된다'는 낙관론 진영과 'AI는 strawberry의 r도 못 세는 확률적 앵무새'라는 비관론 진영의 수백 편의 글을 읽었고, 두 진영이 거의 모든 것에 의견이 다르면서도 정확히 같은 세 가지 실수를 공유한다는 사실을 발견했습니다.

실수 1 — 타이핑과 엔지니어링의 혼동

모든 글은 사실상 '코드 생성'에 대한 논쟁이라고 저자는 말합니다. 낙관론자는 모델이 한 번에 동작하는 앱을 만들어내는 장면을 보여주고, 비관론자는 존재하지 않는 API를 hallucinate하는 장면을 보여줍니다. 하지만 30일의 실험에서 배운 것은 타이핑이 결코 어려운 부분이 아니었다는 점입니다. AI는 CRUD, Zod 스키마, 스캐폴딩을 완벽하게 작성했지만 산출물은 약 20%만 변했는데, 코드 작성이 업무의 20%였기 때문입니다. 나머지 80%는 어떤 코드가 필요한지, 언제 미묘하게 틀렸는지, 무엇을 만들지 말아야 하는지를 아는 것이었습니다. '동작하는 함수를 만들 수 있는가'를 벤치마크하는 것은 외과의사를 절개 속도로 평가하는 것과 같다고 지적합니다.

실수 2 — 사다리가 그대로라는 숨은 가정

낙관론자는 '주니어+AI가 시니어 수준 생산성을 낼 것'이라 하고, 비관론자는 '주니어 일자리가 사라지는 유혈사태'라 하지만, 둘 다 주니어에서 시니어로 가는 사다리가 그 자리에 남아 있다고 가정합니다. 그러나 사다리는 일 자체로 만들어져 있습니다. 시니어가 되려면 AI가 지금 흡수하고 있는 바로 그 일 — 스캐폴딩, 보일러플레이트, 자신만만하지만 틀린 초안을 겪으며 배우는 과정 — 을 수만 시간 해야 합니다. 저자의 실험에서 AI는 저자를 대체한 게 아니라 주니어에게 맡기던 작업을 대체했고, 이는 계층을 평탄화한 것이 아니라 사다리의 아래 칸을 잘라내면서 위쪽 칸의 가치를 높인 것이라고 분석합니다. 10,000시간은 건너뛸 수 없고 어디에 쓰이는지만 옮길 수 있는데, 업계는 그 시간이 쓰이던 장소를 조용히 삭제하고 있다고 말합니다.

실수 3 — 데모로부터의 외삽

낙관론의 데모인 '90초 만에 todo 앱 생성'도, 비관론의 데모인 '수수께끼 실패'도 모두 happy path입니다. 프로덕션은 스크린샷의 순간이 아니라 새벽 2시, 이상한 행동을 하는 실제 사용자, DB 순간 장애, 더블클릭된 버튼입니다. 저자가 경험한 가장 무서운 사례는 crash가 아니라 '실행된 코드'였습니다. 이벤트를 persist하기 전에 acknowledge하는 Stripe webhook은 모든 테스트를 통과했지만, DB blip 한 번이면 결제 기록 없이 돈만 낸 고객이 생깁니다. 모델이 자기 잘못된 mental model과 일치하는 테스트를 스스로 작성했기 때문입니다. '실행됐다'와 '동작했다'는 다르며, 데모에서 직업의 미래를 외삽하는 모든 글은 이 둘을 슬쩍 바꿔치기한다고 지적합니다.

저자의 결론 — 예측이 아니라 구조

저자는 'AI가 개발자를 대체할까'라는 질문은 엔지니어를 위한 점성술이라고 평가하며, 답 가능한 질문은 'AI의 산출물이 신뢰할 수 있으려면 무엇이 참이어야 하는가'라고 제시합니다. 코드를 작성하는 것과 리뷰하는 것은 같은 것일 수 없습니다. 모델은 자기 숙제를 스스로 채점하고 항상 통과시키므로, diff를 축복하는 게 아니라 반박하는 것이 전부인 별도의 리뷰어와, 모델이 볼 수 없는 blast radius를 보는 merge 버튼의 인간이 필요하다고 말합니다. 이는 자사 제품 xenition의 구조 — 작업하는 에이전트, 그것을 허물려는 다른 에이전트, merge를 소유하는 사람 — 와 같으며, 실제 빌드에서 로깅된 9건의 문제가 모두 모델이 자기 실수를 통과시킨 사례였다고 밝힙니다.

원문: dev.to / 번역·요약: Trawling

참고 자료

오류 제보