LLM 에이전트가 새로운 고수준 프로그래밍 언어가 된다는 가설과, 그에 따른 개발 스택(문서·구현·대화·작업)의 형태, 웹/MCP, 품질과 이해가능성에 대한 쟁점을 다룬다.
URL: https://federicopereiro.com/llm-high/
Title: ~fpereiro
(원문은 여기에 처음 게시됨)
이 가설을 따르면, C가 어셈블러에 했던 것, Java가 C에 했던 것, Javascript/Python/Perl이 Java에 했던 것을, 이제 LLM 에이전트가 모든 프로그래밍 언어에 하고 있다.
여기서 LLM 에이전트란 무엇을 의미하는가? 곧 인간의 주요 개발 스택은 다음과 같아질 것이라는 뜻이다:
이 가설이 참인지 어떻게 판단할 수 있을까? 인간 개발자가 여러 자율 에이전트를 사용함으로써, 사용하지 않을 때에 비해 한 자릿수(10배) 더 많은 것(10x)을 만들 수 있다면, 가설은 참이다. 아직은 확신하지 못한다(2026년 1월 기준). 하지만 진지하게 고려하고 있다.
소프트웨어 업계에 오래 있었던 많은 사람들에게는, 반론이 꼬리를 물고 떠오를 것이다. 쉬운 것부터 다뤄보자:
(위의 것들 중 어느 것도 논리적으로는 방어하기 어렵다고 본다. 다만 감정적으로 받아들이기 쉽지 않을 뿐이다)
이제 본질을 찌르는 두 가지 반론으로 가보자:
나는 LLM 프로그래밍에서 받아들일 만한 어떤 프레임워크든 그 목표를 품질과 이해가능성으로 두고 싶다. 경제적으로 보면 목표로서 방어 불가능한 것은 오직 ‘품질’뿐이다. 이해가능성은 낭만적인 꿈일 수도, 장기적으로 좋은 베팅일 수도 있다(나는 후자라고 보지만, 당신은 물론 불가지론적이어도 된다).
이제 다소 구식(quaint)인 이야기: LLM은 이전의 고수준 언어들보다 훨씬 비결정적(nondeterministic)이다. 또한 이전 어떤 계층도 자기 자신을 다루는 방식으로는 할 수 없었던 수준에서, 고수준(설명)에서의 문제 파악을 도와줄 수 있다.
이 가까운 미래가 어떤 모습일지 공통 요소를 찾아보자:
이를 보면 ‘저장량(stock)’ 두 개와 ‘흐름(flow)’ 두 개가 있다. 두 저장량은 “-tion”들(문서와 구현)인데, 이것이 시스템의 축적물이다. 그리고 두 흐름, 즉 대화와 작업도 있다. 대화와 작업이 문서와 구현을 모두 만들어낸다. 인간이 문서와 구현을 직접 수정하는 것도 가능하지만, 그리 자주 일어나지는 않을 것이다. 대부분의 흐름이 에이전트 중심(agentic)일 것이고, 인간은 대부분의 시간을 에이전트와 상호작용하는 데 쓰게 될 것이다.
에이전트는 어떻게 구조화될까? 에이전트는 여러 역할을 수행할 수 있다(기반 모델이 범용이기 때문에). 여기서는 가능한 한 자유도를 많이 남길 수 있다고 본다. 어떤 에이전트든 어떤 대화에든 들어갈 수 있고, 인간도 어떤 대화에든 들어갈 수 있다면, 인간이 다양한 가능성을 실험하게 둘 수 있다:
중요한 점은 인간이 수동 또는 자동으로 에이전트를 띄울 수 있어야 하며, 지시는 일회성일 수도 있고 문서의 한 덩어리(chunk)일 수도 있다는 것이다.
새로운 형태의 월드 와이드 웹에 대한 기회가 있다—정확히는 기존 웹을 훨씬 더 자유롭고 웹답게 만들어, 애플리케이션의 사일로를 깨는 기회다. 그 기회가 MCP다. MCP(LLM의 도구 호출(tool calling)을 위한 표준)는 모두가, 그리고 그들의 어머니까지도 지원하려고 달려들고 있는데, 이를 일반화된 XMLHTTPRequest로 볼 수 있다. 이는 AI 에이전트가 기존 애플리케이션에 갇혀 있던 기능과 데이터를 가져와, 당신이 선택한 동적 캔버스에 올려놓을 수 있는 가능성을 연다.
cell에 대한 나의 원래 비전은, 완전히 이해 가능하고 이미 배포된 코드와 데이터의 그리드(데이터스페이스)였다. 하지만 이것만으로는 충분하지 않다. 이것은 단지 “그리드”일 뿐이다. 그리드를 둘러싸는 것은 동적 페이지들의 집합일 텐데, 거기서는 문서와 기능이 하나로 합쳐진다.
문서는 단지 문서가 아니라: 기능을 임베드할 수 있을 것이다. 그것은 당신 자신의 애플리케이션에서 올 수도 있고(그리드에서 지원됨), 외부 애플리케이션에서 올 수도 있다. 전체 화면으로 띄울 수 있는 미니 대시보드나 위젯을 둘 수 있다. 혹은 다른 페이지로 이동할 수도 있다. 당신의 cell은 페이지들의 모음 + 그리드 + 그 위에서 작업하는 에이전트들로 구성될 것이다. 그리고 그중 많은 부분은 외부에서 접근 가능할 수 있다.
이 모든 것은 여전히 서버를 필요로 한다. 이유는 다음과 같다:
품질과 이해가능성은 어떻게 되는가? 큰 스택 대신 좋은 서브스트레이트(substrate)를 사용한다면, LLM 출력의 라인 수는 훨씬 줄어들고 더 이해하기 쉬워질 것이다. 그렇다면 우리가 만드는 시스템의 품질과 성능을 크게 끌어올릴 수 있다.
이제 시스템의 프런트엔드는 문서와 에이전트이며, 백엔드는 스택/서브스트레이트다.
열린 질문(Open questions):