- 소프트웨어 개발에서 Bus Factor는 특정 지식 보유자가 몇 명이나 있어야 프로젝트 유지가 가능한지를 나타내는 개념으로, 기존에는 최악의 경우 값이 1이었음
- 그러나 ChatGPT 공개(2022년 11월 30일) 이후, 생성형 AI가 대중적으로 채택되면서 많은 이들이 지식을 직접 보존하지 않고 AI에 의존하며, 사실상 버스 팩터 0의 상황이 발생함
- 프로그래밍 현장에서는 점점 더 많은 개발자가 LLM이 생성한 코드와 기능을 그대로 사용하며, 코드베이스를 이해하려는 노력을 포기하고 “바이브 코딩(vibe coding)”으로 전환함
- 이로 인해 버그 수정, 보안 패치, 기능 확장 시, 누구도 코드가 왜 그렇게 작성되었는지 모르는 상황에 직면할 수 있음
- 이는 소프트웨어 신뢰성과 보안에 심각한 위험을 초래하며, AI가 완벽한 코드를 완벽히 생성하는 날이 오기 전까지는 근본적 한계가 존재함
버스 팩터 개념과 역사
- 버스 팩터는 특정 지식이 몇 명의 사람에게 공유되어 있는지를 수치로 표현한 개념임
- 예: 3명이 데이터베이스 백업을 복구할 줄 알면 해당 기능의 버스 팩터는 3임
- 전통적으로 최악의 값은 1이었으며, 한 사람이 지식을 잃으면 프로젝트 유지가 불가능했음
- 인류는 이를 극복하기 위해 문서화, 교육, 지식 이전, 세미나, 학교 등 수많은 방법으로 지식을 전파
- 수많은 인적 자원과 시간을 투입해 지식을 전승하고 보존하는 체계적 시도로 이어져 왔음
AI 도입과 버스 팩터 0
- 2022년 11월 ChatGPT 출시로 “AI First” 시대가 열림
- AI가 코드와 기능을 생성하는 과정에서 많은 사람들이 지식 보존의 주체에서 배제되고 AI 생성물에 의존하기 시작하며 프로젝트 이해도가 급격히 낮아짐
- 결과적으로 지식 보유자가 아예 없는 상태, 즉 버스 팩터 0의 상황이 발생함
- 프로그래머들은 코드와 기능을 스스로 작성·이해하지 않고, AI에게 완전히 위임하는 흐름을 보임
- 이 과정에서 개발자들은 코드베이스 이해와 문서화를 회피하고 단순히 AI에 설명을 재요청하는 패턴으로 변화함
LLM 기반 코딩의 문제
- 코드 품질 문제는 차치하더라도, 읽기와 유지보수는 본질적으로 작성보다 더 어렵다는 점이 핵심임
- 과거에는 멘토나 문서가 최소한의 도움을 제공했지만, AI 의존 환경에서는 이런 안전망조차 사라짐
- LLM 기반 개발에서는 코드 생성 과정이 기록되지 않고, AI조차 자신이 생성한 코드의 맥락을 기억하지 못함
- 결국 개발자들은 AI가 작성했지만 맥락이 불명확한 코드를 분석하고 수정해야 하는 상황에 놓임
- 이는 버그 해결, 보안 취약점 패치, 종속성 업그레이드 등에서 누구도 코드의 의도와 구조를 알 수 없는 상태를 초래
사용자 관점에서의 위험
- 개발자뿐 아니라 사용자도 위험에 노출됨
- 개인 문서, 신용카드 정보, 사적인 사진이나 생각 등을 업로드하는 소프트웨어가 내부 구조와 목적을 아무도 모르는 코드로 만들어 졌을 수 있음
- 이는 데이터 보호와 신뢰성 측면에서 심각한 리스크를 내포하며, 서비스 안정성에 대한 의문을 불러일으킴
결론
- 버스 팩터 0을 초래하는 바이브 코딩은 근본적으로 결함이 있는 접근임
- 이는 AI가 100% 정확한 코드를 100% 정확한 프롬프트로 생성할 수 있을 때까지는 피할 수 없는 한계임
- 따라서 현재 상황에서는 AI 활용과 더불어 지식 보존과 코드 이해의 중요성을 간과할 수 없고, 지식 관리 및 문서화 체계를 유지하는 것이 필수적임