LLM 시대의 확장 가능한 소프트웨어
LLM이 코드 작성 비용을 획기적으로 낮추면서, 웹 소프트웨어도 사용자가 자연어로 원하는 기능을 직접 확장할 수 있는 '확장 가능한 소프트웨어(Extensible Software)' 패러다임이 가능해졌다는 주장입니다. 저자는 검증된 코어 위에 사용자가 LLM으로 안전하게 기능을 추가하고 공유할 수 있는 웹 앱이 새로운 기회라고 보며, Cloudflare Dynamic Workers 등이 이 모델에 적합한 실행 환경이라고 제안합니다.
오늘날 우리가 사용하는 대부분의 웹 소프트웨어는 정적입니다. 개발자는 시간과 주의가 한정되어 있어 가장 많은 사용자층을 위한 기능을 만드는 데 집중합니다. 수요 곡선의 상위 부분은 기존 소프트웨어가 잘 충족하지만, 사용자마다 다른 충족되지 않은 니즈의 롱테일(long-tail)이 존재합니다. 개발자가 모든 기능을 넣으려고 해도, 사용자 인터페이스는 복잡해질수록 사용 불가능해지는 한계에 부딪힙니다. 추가되는 기능 하나하나가 다른 모든 사용자에게 제품을 복잡하게 만듭니다. 해당 기능의 시장이 작다면, 그 기능이 필요 없는 모든 사용자에게 오히려 제품을 나쁘게 만들 수도 있습니다.
이런 맥락에서 LLM 기반 코딩의 부상은 이 롱테일에 속한 무언가가 필요했던 사람들에게 진정으로 힘을 실어주었습니다.
소프트웨어가 말랑말랑해졌다
LLM이 '한 사람을 위한 소프트웨어(Software for One)'를 만드는 데 매우 탁월하다는 점은 이미 분명해졌습니다. 엔터프라이즈 소프트웨어의 모든 복잡성과 책임 문제를 피하고, 한 사람의 워크플로우에 맞춤 제작된 개인 앱입니다. 와이 콤비네이터(Y Combinator)의 Pete Koomen은 이것이 '스몰 소프트웨어(Small Software)'라 불릴 기회라고 생각합니다. 저도 그 생각이 옳다고 봅니다.
Pi는 제가 'LLM 네이티브 소프트웨어(LLM-native software)'라고 부르기 시작한 것의 좋은 예시입니다. 검증된 코어를 갖추고 있으면서도, 요청만으로 거의 무한히 확장 가능하고, 사용자가 자신의 커스터마이징을 다른 사람과 공유할 수 있습니다. 지난 1년간 사용자들은 갑자기 코드를 말로 만들어낼 수 있는 능력을 갖게 되었습니다. 기존 소프트웨어 대부분은 이것을 활용할 수 없습니다. Pi는 이를 적극적으로 활용합니다. 이런 자기 확장(self-extension) 패턴을 따르는 소프트웨어가 더 많아질 것이라고 예상합니다.
하지만 지금까지 플러그인 방식 소프트웨어의 예시는 대부분 로컬 소프트웨어입니다: AI 에이전트, 개발자 IDE, 게임 모드(mods), 블렌더 애드온, CAD 확장 기능 등입니다. 이들은 진입 장벽이 높은 전문 도구인 경향이 있습니다. 웹은 세계에서 가장 성공적인 소프트웨어 배포 시스템입니다. 웹이 뒤처져서는 안 됩니다.
저의 가설은 웹에서의 확장 가능한 소프트웨어(Extensible Software)에 새로운 기회가 있다는 것입니다. LLM은 확장 프로그램 작성 비용을 획기적으로 낮추고, 현대의 샌드박스 프리미티브는 배포 비용을 낮추며 좋은 보안 경계를 제공합니다. 우리는 앱을 견고하고 책임 있는 코어로 만들고, LLM이 빈 부분을 채워넣게 하여 사용자가 여러 방향으로 안전하게 확장할 수 있도록 할 수 있습니다. 사용자에게 초능력을 줄 수 있는 것입니다.
참고: 저는 현재 Cloudflare에서 일하고 있으며, Kenton Varda의 글을 많이 접하면서 이 글의 사고에 큰 영향을 받았습니다. 마지막 부분에서 Dynamic Workers가 이 모델에 특히 잘 맞는다는 주장을 하겠지만, 그 전에 여러 대안을 먼저 다루겠습니다.
이것은 어떤 모습일까?
오늘날 많은 웹 시스템은 사용자가 앱의 변경 사항에 반응할 수 있도록 웹훅(webhook)에 의존합니다. 이것도 어느 정도는 작동하지만, 확장의 진입 장벽이 매우 높습니다. 완전히 별도의 서비스를 구축·운영하고 발생하는 전달 문제까지 처리해야 하니까요. 저는 레코드 업데이트에 훅을 걸어 나만의 로직을 끼워 넣고 싶습니다. "이 태그를 레코드에 붙이면 내 함수를 실행해줘." "이 작업을 매일 크론(cron)으로 실행해줘." 사실, 그런 건 전혀 생각하고 싶지 않습니다. 나의 '나중에 읽기' 앱에 이렇게 말하고 싶을 뿐입니다:
내가 좋아요를 누른 4000단어 이상의 모든 글을 <내가 선택한 전자책 리더기>로 보내줘 매주 arxiv에 <내 전문 분야>의 새 논문이 올라오면 찾아서, 내 연구와 어떻게 관련되는지 요약을 맨 위에 추가하고 <태그>를 붙여줘 기본 알고리즘이 <내가 자주 읽는 사이트>를 완전히 망쳐서 출력하고 있어. 몇 가지 예시를 가져와서 그 사이트 전용 파서를 만들어줘
그러면 로봇이 필요한 코드 조각을 뽑아내서 확장 지점에 연결하고, 그 일을 실제로 해낼 것입니다. 또한 내가 만든 것을 같은 기능을 원하는 다른 사람과 공유할 수 있어야 합니다.
LLM 네이티브 확장 방식이 적용되면 좋을 만한 영역이 더 있습니다.
AI 에이전트
네, 이건 가장 명백한 것입니다. pi, deepseek, opencode 등...