빌딩 블록 경제 (The Building Block Economy)
TMT소프트웨어를 만들어 대규모로 확산시키는 가장 효과적인 방법은 더 이상 고품질 메인라인 앱이 아닙니다. 이제는 다른 사람들이 품질보다 양을 우선해 만들어내도록 돕고 부추기는 빌딩 블록(building block)입니다.
Ghostty는 18개월 만에 하루 100만 건의 macOS 업데이트 확인을 기록했습니다. libghostty는 2개월 만에 일일 사용자 수백만 명에 도달했습니다.1
비슷한 성장 궤적은 다른 '빌딩 블록' 기술에서도 볼 수 있습니다. Pi Mono, Next.js, Tailwind 등이 그렇습니다.
이를 직접 겪고 다른 생태계에서도 지켜보면서, 상업적 목표든 비상업적 목표든 상관없이 오늘날 제품과 소프트웨어 개발이라는 일을 바라보는 제 관점이 근본적으로 바뀌었습니다.
수입이 늘고 있다
저는 이것들이 쓰이는 방식을 가리켜 '빌딩 블록'이라고 부릅니다. 오늘날에는 조립되는 방식 자체가 지난 수십 년과 확연히 다르기 때문입니다.
'라이브러리'나 '프레임워크'라는 말을 쓰지 않는 것은, 이 현상이 '애플리케이션'에까지 이어지기 때문입니다(예를 들어 Ghostty GUI 앱은 그 위에 맞춤 패치를 얹은 포크가 그 어느 때보다 많은데, 정말 멋진 일입니다).
오늘날의 공장은 에이전트로 돌아갑니다. 이에 대해 어떤 감정을 갖고 있든, 저는 이것을 객관적 사실로서 말합니다. 이 공장에서 나오는 것의 99%가 완전한 쓰레기라고 주장할 수는 있어도, 쏟아져 나오는 그 엄청난 양 자체는 부정할 수 없습니다. 그 수치는 기술 스택과 산업을 가리지 않고 어디에서나 확인되며, 부인할 수 없는 수준입니다.
AI는 모든 것을 밑바닥부터 만드는 데는 그럭저럭이지만, 품질 좋고 문서화가 잘 되어 있으며 검증된 컴포넌트를 이어 붙이는 데는 정말 뛰어납니다. 그리고 명시적으로 다르게 지시하지 않는 한, AI는 가능하면 이 방식을 선호합니다. 이것이 오늘날 소프트웨어가 가진 '빌딩 블록'의 성격입니다. 우리는 그 어느 때보다 기성 컴포넌트를 가져다 이어 붙이고 있습니다.
물론 사람도 늘 그렇게 해 왔습니다. 제 경력 내내, 소프트웨어 개발자들은 검증된 기본 요소 위에 쌓아 올리는 쪽을 선호했습니다. 하지만 컴포넌트를 대충이라도 이어 붙이려면 그 조각들을 충분히 이해해야 했고, 이 자연스러운 진입 장벽이 워낙 높아서 생태계 규모가 제한되어 있었습니다. 이제 그 장벽이 사라졌습니다.
수출이 늘고 있다
이 공장들에서 나오는 것은 당연히 소프트웨어입니다. 그것도 어마어마하게 많은 소프트웨어입니다.
여기에는 부정적인 면도 있습니다. 워낙 자명해서 길게 다루지는 않겠지만, 존재한다는 점은 짚고 넘어가고 싶습니다. 보안 취약점, 불안정성, 그리고 시스템의 하중을 떠받치는 부분이 어떻게 동작하는지에 대한 전반적인 이해 부족이 그것입니다.
하지만 긍정적인 면이 아주 많습니다.
- 품질 기준이 낮아집니다. 폭넓은 사용자층이 쓰는 메인라인 애플리케이션은 모든 기능을 다른 모든 기능과 견주어 봐야 합니다. 서로 어떻게 상호작용할까요? 장기 비전에 비추어 타당할까요? 수백만 사용자를 상대로 유지보수할 수 있을까요? 반면 한 명에서 수백 명을 겨냥한 공장 산출물은 이런 것을 신경 쓸 필요가 없습니다. 그 덕분에 더 빠르고 느슨하게 내놓을 수 있습니다.
- 인지도가 높아집니다. 메인라인 애플리케이션이 모든 것을 다 할 수는 없습니다. 보통은 가장 많은 사용자가 필요로 하고 실제로 쓰는 사용 사례에 맞춰 최적화합니다. 공장 산출물은 아주 작은 사용자 집단에 맞춰 최적화할 수 있고, 그 사용자들은 그 과정에서 빌딩 블록의 존재를 알게 됩니다. Ghostty에서 이 현상을 크게 체감하고 있는데, 아주 좁은 틈새 커뮤니티들이 자기만의 터미널을 갖게 되고 있습니다.
- 유지보수 부담이 줄어듭니다. 기능 요청에 "사양하겠습니다"라고 답하기가 그 어느 때보다 쉬워졌습니다. 생산 수단의 핵심을 이미 내어주고 있기 때문입니다. 제가 저품질 대량 요청(slop)에 시달린 일은 꽤 알려져 있고, 급기야 "거절 기계(no machine)"까지 만들었을 정도지만, "아니요"라고 말하는 데 대한 미안함도 날이 갈수록 줄고 있습니다.
- 연구개발이 아웃소싱됩니다. 메인테이너 입장에서 다른 사람들이 무엇을 하는지 보고, 실제로 동작하는 개념 증명을 확인한 다음, 어떤 것을 메인라인으로 가져올지 결정하기가 훨씬 쉬워졌습니다. 말만 하는 사람은 훨씬 줄고 직접 해 보이는 사람은 훨씬 늘었습니다. 그리고 남들이 직접 해 보이는 동안 가장 좋은 아이디어만 골라 담을 수 있습니다(이것은 공정한 거래입니다. 이쪽은 빌딩 블록을 내놓고, 저쪽은 아이디어를 내놓는 셈이니까요).
그 영향
이 변화는 제가 소프트웨어와 제품 개발을 바라보는 방식을 바꾸고 있습니다.
저는 이제 훨씬 의도적으로 빌딩 블록을 만들고, 그 위에 애플리케이션이나 포크가 생겨나도록 장려합니다. 그 결과 커뮤니티는 더 행복해지고 더 커지며, 궁극적으로 메인라인 소프트웨어도 더 좋아지고 있다고 생각합니다.
고품질 애플리케이션이 사라지는 것은 아닙니다. 빌딩 블록을 만든 개발자가 직접 내놓는 고품질 애플리케이션도 사라지지 않습니다. 제 경우, 빌딩 블록인 libghostty가 있다고 해서 애플리케이션인 Ghostty가 사라지지는 않습니다.
오히려 메인라인 애플리케이션은 더 안정적이 되고, 기능 구성도 더 뚜렷한 목적을 갖게 된다고 봅니다. 안정성은 훨씬 크고 다양해진 사용자 집단에서 나오고, 기능 구성은 아웃소싱된 연구개발이라는 거대한 생태계에서 나옵니다.
모두가 알면서도 꺼내지 않는 문제: 상업화
자연스럽게 따라오는 질문은 이것이 상업화에 어떤 의미인가 하는 것입니다. 폐쇄형 상용 소프트웨어는 엄청나게 불리해 보입니다. 실제로도 그렇습니다.
에이전트는 폐쇄형 상용 소프트웨어보다 공개되어 있고 무료인 소프트웨어를 더 쉽게 고릅니다. 이 글을 쓰는 시점에서 이것은 객관적 사실입니다. 유명 모델을 대상으로 실험해 온 독립 연구소들은, 다양한 조건에서 모델이 상용 대안 대신 공개 무료 대안을 고른다는 사실을 거듭 확인했습니다. 적어도 지금까지는 그렇습니다.
다만 여기에 대해서는 구체적인 답을 갖고 있지 않습니다. 제품과 소프트웨어 개발과 달리, 지금 제가 상업화할 만한 제품을 직접 만들고 있지는 않기 때문입니다. 생각은 있고, 모든 어려운 문제가 그렇듯 답은 단순하지 않으리라 봅니다. 하지만 이 주제를 잘 아는 것처럼 말하는 인상을 주고 싶지 않아서 여기서는 다루지 않겠습니다. 직접 부딪혀 보고 더 배우게 되면 그때 더 이야기하겠습니다.
이 과제가 분명히 존재한다는 사실을 한 번 더 짚어 둘 뿐입니다.
전환은 이미 일어났다
빌딩 블록과 소프트웨어 공장이 우리 주변의 모든 것을 지배한다는 사실을 받아들이고, 그로 인한 결과를 인정하고 체화해야 합니다.
반대 방향으로 달아나 이 흐름에 맞서 싸우는 고립된 영토를 만들 수도 있습니다. 아니면 혼돈에 완전히 몸을 맡길 수도 있습니다. 저를 아는 사람들은 제가 행동에서는 그보다 훨씬 온건하고, 맥락에 따라 다른 견해를 갖는다는 것을 압니다.
요점은 전환이 이미 일어났다는 것입니다. 우리는 그 안에서 살고 있습니다.
이 글은 AI의 도움 없이 손으로 직접 썼습니다. 저는 AI를 아주 좋아하고 많이 쓰지만, 콘텐츠만큼은 개인적으로 선을 긋습니다. 글에는 제가 어떤 사람인지 그대로 담기길 바랍니다.
Footnotes
-
Ghostty에는 실질적인 추적 장치가 없어서 정확한 수치를 얻기는 당연히 어렵습니다. macOS 쪽은 업데이트 파일 확인 집계를 볼 수 있지만, Linux 쪽은 전혀 파악할 수 없습니다. libghostty 자체에는 추적 장치가 없지만, libghostty를 통합한 도구 중에는 추적하는 것이 있어 집계 수치를 공유해 주었습니다. ↩