자동 프로그래밍 | GeekNews
핵심 포인트
- 1Antirez는 AI 보조 소프트웨어 작성을 개발자의 명확한 비전과 통제 하에 이루어지는 'Automatic Programming'이라 정의하며, 이는 무작위적인 'Vibe Coding'과 달리 인간의 직관과 방향 조정이 필수적이라고 주장합니다.
- 2이 개념은 AI가 생성한 코드의 소유권이 사용자에게 있으며, 사전 학습 데이터는 인류의 집단적 선물로 보고 AI를 도구로서 활용하는 것에 대한 윤리적, 실용적 관점을 제시합니다.
- 3미래의 프로그래밍은 명세 기반의 '증강된 폭포수' 방식으로 변화하며, 아이디어와 비전은 여전히 인간의 영역으로 남고 개발자는 코드 품질과 아키텍처에 대한 이해를 바탕으로 AI를 활용하는 새로운 장인이 될 것임을 시사합니다.
Antirez는 AI 보조를 활용한 소프트웨어 작성 과정을 'Automatic Programming'으로 정의하며, 이는 미래 소프트웨어 작성의 표준이 될 것으로 전망합니다. 'Automatic Programming'은 AI가 생성한 코드일지라도 개발자의 명확한 비전과 통제, 지속적인 방향 조정이 전제되며, 고품질을 추구하고 생산자의 소프트웨어 비전을 엄격히 따르는 방식입니다. 이는 원하는 것을 매우 일반적인 용어로 설명하고 AI에 전적으로 맡기는 'Vibe Coding'과는 차별화됩니다. 'Vibe Coding'은 LLM이 학습 데이터와 특정 샘플링에 따라 첫 번째 아이디어나 코드를 생성하며, 사용자는 기껏해야 작동하지 않거나 기대와 다른 부분을 보고하는 수준에 그칩니다. 반면 'Automatic Programming'은 특정 작업을 어떻게 수행하고 특정 함수를 어떻게 작성할지에 대한 구체적인 지시까지 포함하는 다층적인 비전을 바탕으로 합니다.
Antirez는 같은 LLM을 사용하더라도 과정을 이끄는 인간의 직관, 설계, 소프트웨어에 대한 아이디어에 따라 결과물이 크게 달라진다고 강조하며, 이는 'Claude가 소프트웨어를 Vibe Coding해줬다'는 식의 표현이 부적절함을 시사합니다. AI가 생성한 코드의 소유권에 대해서는, AI 학습에 사용된 사전 학습 데이터가 인류가 축적한 지식과 판단을 바탕으로 하므로, AI 생성 코드를 개발자의 결과물로 간주하고 소유권을 주장할 권리가 있다고 말합니다. 사전 학습 데이터는 많은 개인이 혼자서는 절대 할 수 없는 일을 가능하게 하는 '집단적 선물'이라는 관점을 제시하며, 이는 마치 집단 정신에 연결된 것과 유사하다고 비유합니다. Redis의 성공 사례를 통해, 기술적 새로움보다는 아이디어와 비전이 소프트웨어의 가치를 결정하는 핵심 요소임을 강조하며, 프로그래밍은 자동화되었지만 비전은 여전히 인간의 영역임을 시사합니다.
Hacker News의 의견들은 Antirez의 주장을 보완하거나 반박합니다.
한 30년 경력 개발자는 AI를 활용한 '명세 기반 개발(spec-driven development)' 경험을 공유하며, Claude Code 및 GPT-5.2(CoPilot)를 사용하여 요구사항을 생성하고 자체 리뷰를 통해 명세를 다듬은 후, AI가 구현 계획과 코드를 작성하여 20분 내 주요 기능을 완성했다고 밝힙니다. 이는 과거 워터폴 방식과 유사하지만 AI 덕분에 훨씬 빠르고 정제된 '증강된 폭포수(augmented cascade)' 접근 방식이라고 표현하며, 프로그래밍의 미래가 명세 중심이 될 것이라고 전망합니다. 그러나 아무리 정교한 명세라도 현실과의 충돌, 즉 인간이 모든 복잡성과 예외 상황을 예측하기 어렵다는 점이 지적됩니다.
'사전 학습은 인류의 집단적 선물'이라는 표현에 대해서는 여러 의견이 나뉩니다. 일부는 도둑질된 것이라면 선물이 아니라고 반박하며, 생성된 코드의 책임은 전적으로 사용자에게 있음을 강조합니다. 반면, 지식은 훔칠 수 없는 것이며 지식의 공유 자체가 인간 발전의 본질이라는 반론도 제기됩니다. 오픈소스 라이선스(예: GPL) 하에 있는 코드가 LLM 학습에 사용될 경우, 그 결과물도 해당 라이선스를 따라야 한다는 법적 문제도 언급됩니다. 과거 카프카의 원고 사례나 퀵소트 구현 시 Hoare에게 크레딧을 주지 않는 관행 등을 들어 지식재산권이 절대적인 것이 아닐 수 있다는 주장도 나옵니다.
일부 개발자는 Antirez의 'Automatic Programming'과 유사한 개념을 '젠 코딩(zen coding)'이라 부르며, 코드베이스를 '선(禪) 정원'처럼 다루고, 명세를 세밀하게 설계하며 한 줄씩 리뷰하는 방식을 설명합니다. 이는 AI를 설계자가 아닌 도구(tool)로 활용하여 명확한 명세를 가진 사람이 더 높은 품질의 코드를 얻을 수 있음을 시사합니다. 'Vibe Coding'이 직관적인 실험이라면, 'Zen Coding'은 장인의 수련에 가깝다고 비유됩니다. AI로 인해 아키텍처나 코드 품질에 덜 신경 써도 어느 정도 결과물을 얻을 수 있게 된 현 상황에서, 오히려 기대치를 높여 자동화된 방식으로도 고품질의 애플리케이션을 만들어야 한다는 의견도 제시됩니다.
'자동 프로그래밍'이라는 용어는 1950~60년대에는 컴파일러를, 1980년대에는 4GL(4th Generation Language)을 의미했듯 시대에 따라 변화해왔으며, 현재의 LLM은 자연어 명세로부터 초안을 생성하는 단계라고 설명됩니다. 결국 인간은 여전히 반복적인 수정과 설계 변경을 통해 완성도를 높여야 합니다. 이러한 변화 속에서 Antirez와 같은 '장인급 개발자(artisanal coder)'가 사라질 수도 있다는 두려움과 함께, AI라는 새로운 도구를 받아들이고 '새로운 공예의 시대(new age of craftsmanship)'를 실험해야 한다는 긍정적인 시각도 공존합니다. 체스에서 인간이 컴퓨터를 이길 수 없지만 여전히 인기가 많듯이, LLM이 코드를 돕더라도 기초 개념과 구조 이해는 여전히 필수적이며, AI를 잘 다루는 능력이 기존 지식에 더해질 뿐이라고 결론짓습니다. 'Vibe Coding'과 'Automatic Programming'의 차이점은 건축 분야의 CAD/BIM 전환과 유사하며, AI 시대의 개발자는 코딩을 덜 하는 것이 아니라 가치의 초점이 바뀐 것임을 시사합니다. 이는 이분법적 구분이 아닌 스펙트럼의 개념이며, LLM의 출력은 사용자의 기술 수준과 의도에 따라 달라지므로 결과물은 결국 사용자에게 귀속된다는 점을 강조합니다.