개념적 무결성과 코드 라인 수 세기
원문은 Simon Willison님이 에 게재했습니다. 이 블로그 구독하기
지난주에 저는 Claire Giordano와 함께 “How AI is changing software development”라는 주제로 Talking Postgres 팟캐스트 에피소드를 녹음했습니다. 정말 훌륭한 대화를 나눴습니다. 다음은 가볍게 편집한 대화록에서 뽑은 하이라이트 몇 가지입니다(Claude에 준 프롬프트: “very minor edits to remove disfluencies”).
다음은 코딩 에이전트 시대에 왜 때로는 코드 라인 수를 생산성 지표로 이야기하는 것이 타당한지에 대해 제가 계속 다듬어 온 주장의 최신 버전입니다. 35:01 부분에서 나눈 이야기입니다:
많은 사람들이 생산성을 코드 라인 수로 측정하는 건 의미가 없다고 말하곤 합니다. 저는 사실 동의하지 않습니다. 엄연한 상한선이 있기 때문이죠. 예전에는 소프트웨어 엔지니어가 하루에 프로덕션 준비를 마친 코드를 수백 줄 정도 만들어낼 수 있었습니다 — 제대로 동작하고 디버깅까지 끝난 프로덕션 수준의 코드 200줄이면 엄청나게 잘한 날이었죠. 보통은 50~60줄을 작성했습니다.
에이전트를 이용해 디버깅까지 끝난 코드 1,000줄을 만들어낼 수 있다면, 그건 정말로 의미 있는 발전입니다 — 단, 코드 품질이 동일하다는 전제 하에서요. 유지보수가 가능하고 테스트도 되어 있는 등 모든 조건이 갖춰졌을 때 말이죠. 에이전트로 그 수준에 도달할 수는 있지만, 엄청난 기술과 지식, 경험이 필요합니다. 그게 바로 시니어 엔지니어를 만드는 요소입니다.
저는 에이전트 덕분에 한 명의 엔지니어로서 예전보다 훨씬 더 많은 일을 할 수 있습니다. 그렇다면 회사가 왜 한 명보다 많은 엔지니어를 두어야 하냐고 반문할 수도 있겠죠? 당연한 버스 팩터 문제를 떠나서 — 한 명짜리 팀은 매우 잘못 설계된 팀이니까요 — 답은 새로운 병목이 인지적 처리 용량이라는 데 있습니다. 저는 코드를 100배 더 빠르게 쏟아낼 수 있습니다. 하지만 100배나 많은 코드를 계속 파악하고 관리할 인지적 여력은 없습니다. 그래서 여전히 엔지니어 팀이 필요하고, 그 인지적 부담을 팀 전체에 분산시켜야 합니다.
그리고 46:03 부분에 나오는 개념적 무결성에 대한 이야기입니다. Claire는 이를 윈체스터 미스터리 하우스에 비유했습니다!
Simon: The Mythical Man-Month에 나오는 개념이 있습니다 — 개념적 무결성이라는 건데, 잘 설계된 소프트웨어에는 일종의 무결성이 있어서 놀라운 부분이 없고, 정확히 필요한 영역을 다루며, 모든 것이 서로 맞물려 말이 된다는 뜻입니다. 코딩 에이전트와 함께라면 그걸 지키기가 훨씬 더 어려워집니다. 기능에 대한 아이디어가 떠오르면 프롬프트를 실행하고 5분 뒤면 그 기능이 뚝딱 만들어지니까요. 그러다 보면 소프트웨어는 여기저기 엉뚱한 방향으로 이상한 혹들이 자라난 모습이 됩니다.
Claire: 그거에 대한 제 비유가 뭔지 아세요? 윈체스터 미스터리 하우스예요.
Simon: 그 집에는 방이 140개나 있는데, 그 집을 지은 여성이 윈체스터 소총을 발명한 사람의 미망인이었고, 무당이 그녀에게 집을 영원히 계속 짓지 않으면 그 소총으로 죽은 모든 사람들의 유령에게 시달리게 될 거라고 말했기 때문이에요. 그래서 40년 동안 계속 방을 늘렸죠. 이게 바로 코딩 에이전트와 소프트웨어의 문제와 정확히 같습니다. 방을 계속 추가하는 게 너무 쉬워졌거든요. 방을 추가하는 비용이 훨씬 더 저렴해졌기 때문이죠. 결국 남는 건 개념적 무결성이 무너진 무언가이고 — 그러면 그에 대해 결정을 내리기가 더 어려워집니다.
결국 모든 건 다시 규율로 귀결됩니다. 예전에는 그 규율이 걸리는 시간에 의해 강제되었습니다. 황당한 기능에 대한 아이디어가 떠올라도 “그래, 하지만 그걸 하려면 일주일은 걸릴 텐데 — 정당화할 수 없으니 잊어버리자”라고 생각했죠. 한 시간 만에 할 수 있다면 정당화하기가 훨씬 쉬워집니다.
(덧붙임: 위키백과 문서에는 무당 이야기에 이의를 제기하는 신뢰할 만한 출처가 포함되어 있습니다.)
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기