탑은 계속 높아진다
원문은 Armin Ronacher님이 에 게재했습니다. 이 블로그 구독하기
바이브 코딩된 소프트웨어 중 일부는 어쩐지 무작위적이고 예측 불가능하게 변한다는 느낌을 받는다. 그 때문에 브뢰헬의 “바벨탑”이 떠올랐는데, 그 그림은 이미 상당히 혼란스러운 바벨탑의 모습을 보여준다. 이 이야기는 보통 교만과 야망에 관한 이야기, 그리고 궁극적으로 사람들이 왜 더 이상 같은 언어를 쓰지 않게 되었는지에 대한 이야기로 전해진다. 하지만 이 이야기는 기술적 진보를 가능하게 하는 단합에 대한 이야기이기도 하다.
이야기는 기술의 업그레이드로 시작한다:
그들이 서로 말하되 자, 벽돌을 만들어 불에 단단히 굽자 하매 벽돌을 돌 대신하고 역청을 모르타르 대신하였더라.
그들은 그 기술을 문명적 프로젝트에 사용한다:
자, 성과 탑을 쌓아 그 탑 꼭대기를 하늘에 닿게 하자
하지만 하나님이 상황을 살피실 때 문제 삼는 것은 벽돌이 아니다:
이 백성은 하나요 언어도 하나이니, […] 이제 그들이 하고자 하는 일을 막을 수 없으리라.1
그들 힘의 원천은 협업이다. 그들은 하나의 언어를 공유하고, 그 공유된 언어를 통해 각자의 작업을 결합해 누구 혼자서는 만들 수 없는 것을 세운다. 하나님은 벽돌이나 벽돌 만드는 지식을 빼앗지 않는다. 그가 빼앗는 것은 서로를 이해하는 능력이며, 그러자 공사는 멈춘다.
AI 보조 프로그래밍이 더 나은 도구를 의미하고 그래서 더 야심 찬 소프트웨어를 만들 수 있게 해준다는 매력적인 생각이 있다. 개인 차원에서는 분명 사실이며, 에이전트를 활용하는 개발자가 코드베이스를 변경하는 능력이 극적으로 향상되리라는 데는 의심의 여지가 없다. 하지만 대규모 소프트웨어 프로젝트는 개인이 코드를 얼마나 빨리 만들어내느냐에 의해서만 제약된 적이 없다. 그 한계는 사람들이 바꾸고 있는 시스템에 대한 이해를 얼마나 잘 조율하느냐에 달려 있다.
소프트웨어 프로젝트의 공유 언어는 영어든 Python이든 그런 것이 아니라, 그 개념들이 무엇을 의미하는지, 경계가 어디인지, 어떤 불변식이 중요한지, 누가 무엇을 소유하는지, 그리고 시스템이 왜 그런 형태를 갖게 되었는지에 대한 공동의 이해다. 이 언어는 한곳에 깔끔하게 기록되어 있는 경우가 거의 없다. 문서와 코드 속에 일부 살아 있지만, 코드 리뷰와 대화, 논쟁, 그리고 다른 사람에게 변경 사항을 설명해야 했던 경험 속에도 살아 있다.
에이전트가 있기 전에는 이 공유된 이해 중 일부가 마찰을 통해 유지되었다. 내가 당신의 스토리지 레이어를 바꾸고 싶다면, 보통 당신의 코드를 읽고, 질문을 하고, 어쩌면 그에 의존하는 서비스를 가진 다른 팀과 조율해야 했다. 이는 느렸고, 그 느림의 많은 부분은 낭비였지만 전부는 아니었다. 일부는 당신의 이해가 나의 이해가 되는 과정이었고, 그 과정을 통해 우리는 시스템이 어떻게 작동하는지에 대해 여전히 같은 생각을 공유하고 있는지 확인할 수 있었다. 이 마찰이 사람들을 동기화한다.
에이전트는 그 마찰의 상당 부분을 없앤다. 나는 에이전트에게 OAuth를 추가해 달라고 할 수 있고, 당신은 캐싱을 추가해 달라고 할 수 있으며, 또 다른 누군가는 데이터베이스를 처음부터 다시 만들고 UI를 분홍색으로 바꿔 달라고 할 수 있다. 각각의 변경은 따로 보면 합리적으로 보일 수 있다. 코드는 컴파일되고, 테스트는 통과하며, 설명은 필요할 때마다 생성된다. 우리 중 누구도 반드시 서로 대화할 필요가 없고, 과거라면 변경을 위해 억지로 익혀야 했던 공유 모델의 일부를 굳이 습득할 필요도 없다.
전에 여러 번 말했듯이, 에이전트는 고통을 느끼지 않으며 고통을 느끼는 건 오직 인간뿐이다. 에이전트는 이제 우리가 과거에는 다른 사람의 도움이 필요했던 시스템 영역에서, 그리고 사람들이라면 반항했을 코드베이스에서 행동할 수 있게 해준다.
바이브 코딩으로 규모를 키운 일부 프로젝트를 보면, 코드베이스가 바벨이 되는 이유는 아무도 소통할 수 없어서가 아니라 아무도 소통할 필요가 없어서다. 모든 개발자는 탑의 한 귀퉁이를 설명해주고 원하는 국소적 수정을 해주는 지치지 않는 번역가를 갖게 된다. 인간들이 함께 추론할 수 있게 해주던 아키텍처 언어가 사라지는 와중에도 변경 사항은 계속 쌓인다.
하지만 이는 성경 이야기와는 다르다. 바벨에서는 공통 언어의 상실이 공사를 멈추게 하지만, AI 보조 엔지니어링에서는 공유된 이해가 이미 무너진 뒤에도 공사를 계속할 수 있다. 즉각적인 실패가 없다는 점이 이 상황을 흥미로우면서도 다소 혼란스럽게 만든다. 탑은 무너지지 않는다. 그래서 우리는 무엇을 잃었는지 알아차리지 못한다. 탑은 그냥 계속 높아질 뿐이다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기