AI의 도움을 받아 소프트웨어를 만드는 과정에서 ‘바이브 코딩’과 달리, 인간의 비전과 지속적인 조향을 중심에 둔 ‘자동 프로그래밍’이라는 개념을 설명한다.
URL: https://antirez.com/news/159
Title: Automatic programming - <antirez>
antirez 20시간 전. 조회수 48846회. 내 유튜브 채널에서 나는 얼마 전부터 AI의 도움을 받아 소프트웨어를 작성하는 과정을(곧 그냥 ‘소프트웨어를 작성하는 과정’이 될 거라고 믿는다) “자동 프로그래밍(Automatic Programming)”이라는 용어로 부르기 시작했다.
혹시 눈치채지 못했다면, 자동 프로그래밍은 같은 LLM을 사용하더라도 그 과정을 직관, 설계, 지속적인 조향(steering), 그리고 소프트웨어에 대한 구상을 통해 이끄는 인간이 누구냐에 따라 결과가 엄청나게 달라진다.
제발 “클로드가 내 대신 이 소프트웨어를 바이브 코딩해 줬어” 같은 말은 그만하자. 바이브 코딩(vibe coding)은 AI로 소프트웨어를 생성하되, 그 과정에 전혀 참여하지 않는 것을 뜻한다. 매우 일반적인 수준으로 원하는 것을 설명하면, LLM은 학습 데이터, 그 실행에서 우연히 지배적이었던 특정 샘플링, 기타 여러 요인에 따라 즉흥적으로 떠올린 첫 번째 아이디어/설계/코드를 그냥 만들어낸다. 바이브 코더는 기껏해야 동작하지 않거나 기대와 다른 점을 보고하는 정도다.
과정이 진짜 소프트웨어 생산이고, 무슨 일이 벌어지고 있는지 알고 있다면 기억하라. 그 소프트웨어를 만드는 것은 당신이다. 또한 LLM이 학습한 것이 사전학습 데이터만은 아니지만(강화학습 RL의 비중이 크다), 그 사전학습 데이터는 인간이 만든 것이므로 우리는 남의 것을 빼앗는 것이 아니다. AI가 생성한 코드가 “우리 것”이라고 말할 수 있고, 그렇게 말할 권리가 있다. 사전학습은 사실, 많은 개인이 원래라면 결코 할 수 없었을 일들을 할 수 있게 해주는 우리의 집단적 선물이다. 어떤 의미에서는 우리가 집단 지성으로 연결된 것과도 같다.
그렇다고 해도, 바이브 코딩이 ‘무슨 일이 일어나는지’에 대한 이해가 거의 없는 상태로 소프트웨어를 만드는 과정이라면(그것도 나름의 자리가 있고, 소프트웨어 생산을 민주화하므로 내게는 완전히 괜찮다), 자동 프로그래밍은 AI의 도움을 받아 높은 품질을 지향하고, 생산자가 가진 소프트웨어에 대한 비전을 엄격히 따르려는 소프트웨어 생산 과정이다(이 비전은 다층적이다. 높은 수준에서 어떤 일을 정확히 어떻게 할지부터, 더 깊이 들어가 특정 함수를 어떻게 쓰라고 AI에게 지시하는 단계까지 포함될 수 있다). 그리고 물론 이 과정의 근본적인 부분은 무엇을 할지 정하는 것이다.
나는 프로그래머이고, 자동 프로그래밍을 한다. 이런 방식으로 생성한 코드는 내 것이다. 내 코드, 내 산출물, 내 생산물이다. 나도, 당신도, 자부심을 가져도 된다.
아직 완전히 납득이 되지 않는다면, Redis를 떠올려 보라. Redis에는 기술적 새로움이 그리 많지 않다. 특히 초기에는 유능한 시스템 프로그래머라면 누구나 쓸 수 있는 기본 자료구조와 네트워킹 코드의 합에 불과했다. 그런데 왜 그렇게 유용한 소프트웨어가 되었을까? 그 안에 담긴 아이디어와 비전 때문이었다.
프로그래밍은 이제 자동화되었지만, 비전은(아직) 그렇지 않다.