LLM 기반 코딩이 '바이브 코딩(Vibe Coding)'으로 변질되며 개발자의 코드 이해도 저하를 야기한다는 지적임
에이전트 엔지니어링(Agentic Engineering)과 달리, LLM의 속도에 의존해 코드 리뷰 및 검증 소홀 문제가 발생함
'바이브 시크니스(Vibe Sickness)'라는 신조어로 코드 품질 저하 및 시스템 이해 불가 현상을 설명함
커뮤니티에서는 LLM 사용에 대한 개인적 경계 설정과 실무 적용의 딜레마가 논의됨
원문에서는 LLM의 빠른 코드 생성 속도에 의존하는 '바이브 코딩(Vibe Coding)'과, 개발자가 코드의 작동 방식을 완전히 이해하고 책임지는 '에이전트 엔지니어링(Agentic Engineering)' 간의 경계가 모호해지는 현상을 지적합니다. 특히, Simon Willison의 경험처럼 LLM이 생성한 코드를 검토하지 않고 프로덕션에 적용하는 사례가 늘면서, 개발자의 본질적인 역할(Core Role)인 이론 구축 및 코드 검증이 약화되고 있다는 분석입니다. 이는 LLM의 속도라는 장점을 활용하려다 오히려 개발의 핵심 가치를 잃어버리는 상황을 초래한다고 봅니다.
저자는 LLM을 이용한 코딩 과정을 에 비유하며, 사용자가 점차 코드 생성 과정에서 멀어지는 현상을 설명합니다. 처음에는 보조 도구로 시작하지만, 점차 LLM이 코드를 생성하고 검토하는 과정까지 대신하게 되면서 개발자의 이 축소된다는 것입니다. 이는 마치 봅슬레이드처럼 정해진 트랙을 따라 내려가는 것처럼, LLM이라는 차량에 탑승한 승객으로서의 경험에 가깝다고 분석합니다. 결국 가 코딩의 본질적인 어려움임을 강조합니다.
커뮤니티에서는 LLM 사용 증가로 인한 '바이브 시크니스(Vibe Sickness)' 현상에 대한 공감이 형성되고 있습니다. 이는 단순히 AI 환각(Hallucination)을 넘어, 이해할 수 없는 코드의 누적(Accumulation of Unintelligible Code)으로 인해 발생하는 전반적인 시스템 불안정성과 개발 문화의 피로감을 의미합니다. 특히 오픈소스 프로젝트에서 저품질의 기여(Slop PRs)가 증가하면서 유지보수 담당자들이 겪는 어려움이 언급되며, 이러한 문제에서 벗어나기 어렵다는 점이 지적됩니다.
논의에서는 LLM의 영향력 속에서 개발자들이 각자의 개인적인 경계(Personal Boundaries)를 설정하는 방식이 공유되었습니다. nemin은 개인 시간에는 LLM 사용을 최소화하고, 업무 시간에는 코드 리뷰 보조 등 제한적인 용도로만 활용하여 자신의 직관과 기계의 도움을 결합하는 방식을 제안합니다. 이는 LLM에 전적으로 의존하는 대신, 인간 중심의 개발 프로세스(Human-Centric Development Process)를 유지하려는 노력으로 해석됩니다. 또한, 새로운 기여자가 LLM으로 생성한 코드를 제출했을 때, 관계 유지를 위해 직접적인 피드백을 망설이는 딜레마도 제기되었습니다.
Ka-Ping Yee의 연구를 인용하며, 아무리 숙련된 개발자라도 100줄 코드 내의 복잡한 버그(Complex Bugs within 100 Lines)를 찾는 데 어려움을 겪는다는 점을 강조합니다. 이는 LLM이 생성하는 방대한 양의 코드를 인간이 모두 검토하는 것이 현실적으로 불가능함을 시사합니다. 따라서 LLM의 속도(Speed)라는 장점은 코드 생성 자체에는 유용하지만, 검증(Verification)이라는 소프트웨어 개발의 핵심 난제 해결에는 근본적인 도움을 주지 못한다는 분석입니다. 오히려 그럴듯하지만 디버깅하기 어려운 코드(Plausible-enough but Hard-to-Debug Code)를 양산할 위험이 있다고 지적합니다.