런타임 전쟁은 끝났다... 그리고 Node가 승리했다
요약
자바스크립트 서버 런타임 시장의 경쟁 구도와 Node.js 생태계를 중심으로 Dino(Adino)가 Cloudflare에 합류하는 상황을 분석합니다. 과거 Node.js를 대체하려 했던 자체 런타임 Dino는 기능 추가 속도가 느리고, 이미 성숙한 Node.js의 발전 속도를 따라가지 못하며 모멘텀을 잃었습니다.
핵심 포인트
- Node.js가 지속적인 개선과 기능을 추가하며 시장에서 우위를 점했습니다.
- Dino(Adino)는 TypeScript 지원 등 장점을 가졌으나, Node의 빠른 발전 속도에 밀렸습니다.
- 자체 런타임 구축보다 기존 생태계와 표준을 따르는 것이 중요함을 보여줍니다.
지난주, JavaScript를 서버에 도입하고 지난 10년간 그 잘못을 만회해 온 인물이 자신의 회사 Dino가 Cloudflare에 합류한다고 발표하면서 자바스크립트 런타임 전쟁이 공식적으로 막을 내렸습니다. 서류상으로는 창업자가 미래에 대한 기대감을 표하는 전형적인 실리콘밸리 인수합병처럼 보입니다. 회사는 미션에 대해 기뻐하고 직원들은 'Pruff Stack'이 무엇인지 힘든 경험을 통해 배웁니다. 하지만 생각해 보면, 이미 자체 런타임과 배포 플랫폼을 가진 회사가 왜 더 나쁜 것을 사야 하는지 조금 이상합니다.
오늘 영상에서는 Cloudflare가 실제로 무엇에 돈을 지불했는지 알아보고, Ryan Doll이 왜 Node를 재구현하는 것이 나쁜 아이디어라고 생각하게 되었는지 배우고, Dino의 미래는 어떻게 될지 깊이 파헤쳐 보겠습니다. 그리고 스포일러로 말씀드리자면, 그리 좋지 않습니다. 지금은 2026년 10월 15일이고, 여러분은 코드 리포트를 보고 있습니다. 2009년에 Ryan Doll은 JSCOM EU 무대에 올라 서버에서 JavaScript를 작성할 수 있게 해주는 새로운 오픈 소스 런타임인 Node.js를 세상에 소개했습니다. 9년 후, 그는 'Node에 대해 후회하는 10가지'라는 제목의 강연으로 같은 무대에 돌아왔고, 대부분의 시간을 원래 프로젝트를 해체하는 데 사용한 후에 모든 후회 없이 그것을 처음부터 재창조했음을 밝히며 끝냈습니다.
그는 이것을 Dino라고 불렀으며, Node와 달리 TypeScript를 지원하는 자체 포매터(formatter), 린터(linter), 테스트러너(testrunner)가 포함되어 있었고, 기본적으로 안전했으며, 외부 패키지를 관리할 합리적인 방법을 가지고 있었습니다. Adino 1.0은 몇 년 후인 2020년에 출시되었고, 2021년 Ryan은 새로운 5백만 달러의 시드 라운드와 함께 서버리스 플랫폼 Dino Deploy를 발표했습니다. 처음에는 모든 것이 순조롭게 진행되어 Netlefi와 Superbase가 Dino 위에 엣지 함수(edge functions)를 구축했고, Slack은 이를 사용하여 새로운 앱 플랫폼에 동력을 공급했습니다.
2022년 다음 해에 그들은 Sequoia로부터 2,100만 달러의 시리즈 A 자금을 확보하고 Fresh라는 웹 프레임워크를 출시했으며, 이는 서버사이드 JavaScript의 미래가 될 수 있다는 기대를 갖게 했습니다. 하지만 이후 그들의 모멘텀은 식었습니다. 가장 큰 문제는 Node가 쉽게 무너지지 않았다는 것입니다. 같은 몇 년 동안 Node는 fetch, 권한 모델(permission model), 그리고 TypeScript 파일을 직접 실행하는 기능을 추가했습니다. 따라서 Dino는 우위를 잃었습니다. 한편, 수익을 창출해야 할 제품들은 가치 평가를 정당화할 만큼 충분한 견인력을 얻지 못했습니다.
Adino Deploy는 35개 지역에서 6개 지역으로 줄어들었습니다. Dino KV는 2023년에 출시되었지만 베타 단계에서 벗어나지 못했습니다. 그리고 Fresh는 릴리스 간격이 몇 달씩 벌어지기 시작했습니다. 동시에 Ryan은 JavaScript 상표권 문제로 Oracle과 법적 분쟁을 벌였는데, 이는 Oracle이 같은 해 Sun Microsystems를 인수하면서 물려받은 것이었습니다. 이는 고귀한 목적이었지만, 상표권 변호사들을 위한 GoFundMe는 Sequoia가 2,100만 달러의 수표를 쓸 때 염두에 두었던 바는 아닐 것입니다. 지난 한 해 동안 분위기는 충분히 나빠져서 David Bushell이라는 개발자가 블로그 게시물을 작성하며 Deno가 기본적으로 죽었다고 선언했습니다. 왜냐하면 모든 새로운 릴리스가 끝없는 케첩 게임(ketchup game) 속의 노드 호환성 수정 사항일 뿐이었기 때문입니다.
아이러니하게도, Ryan 자신도 같은 결론에 도달했습니다. 다만 그곳에 도달하는 데 시간이 조금 더 걸렸을 뿐입니다. 그래서 올해 초, 팀은 런타임 외부에서 존재하는 어려운 문제들, 예를 들어 기계 전반에 컴퓨팅을 분산시키는 것, 상태를 조정하는 것(coordinating state), 그리고 확장성(scaling) 등에 주목하기 시작했습니다. 그리고 그들이 찾은 최고의 해답은 Cloudflare의 Durable Objects였는데, 익숙하지 않다면 기본적으로 각자만의 사설 SQLite 데이터베이스와 웹소켓 연결을 유지할 수 있는 작은 싱글 스레드 서버라고 할 수 있습니다.
하지만 Durable Objects의 문제는 이것들이 오직 Cloudflare에서만 작동한다는 것입니다. 그래서 Dino 팀은 지난 8월에 자신들만의 버전인 Cell D를 출시했는데, 이는 훨씬 저렴한 비용으로 자체 서버에서 Durable Objects를 실행할 수 있게 해줍니다. 놀랍게도 Cloudflare는 이렇게 이용당하는 것에 만족했습니다. Cloudflare Workers의 창시자는 발표 게시물에서 사람들이 항상 Cloudflare가 개발자들을 록인(lock in)하기 위해 Workers를 사용했다고 비난해 왔지만, Workers 런타임은 이미 2022년부터 오픈 소스였고, 그들은 수년 동안 자체 호스팅 가능한 버전을 만들고 싶었지만 그냥 시간이 나지 않았다고 말했습니다.
심지어 그는 지난 봄에 직접 만들어보려 했으나 작동시키지 못했다고 인정했습니다. 그래서 Dino 팀이 Cell D로 해결책을 찾았을 때, Cloudflare는 시가총액 1,230억 달러를 가진 회사라면 할 수 있는 일을 했고, 바로 그 회사를 통째로 인수해 버렸습니다. 계획은 Ryan과 공동 창업자 Bert Belder가 Cell D를 Cloudflare의 오픈 소스 Workers 런타임에 병합하여 누구나 공식적인 지원을 받으며 자체 서버에서 Workers와 Durable Objects를 실행할 수 있도록 하는 것입니다. 그리고 저희가 이것에 대해 이야기하지 않고는 전체 영상을 만들 수 없기 때문에, Ryan은 주요 초점이 AI 에이전트라고 말합니다. 왜냐하면 Durable Objects는 저렴한 컴퓨팅 자원, 영구적인 상태(persistent state), 실시간 연결이 필요한 에이전트에 자연스럽게 적합하기 때문입니다.
하지만 불행하게도 CLD가 아닌 어떤 Dino 제품을 사용하고 있다면 당신은 곤란해집니다. Cloudflare는 Dino에 대한 버그 수정 및 보안 패치 제공을 향후 1년 동안만 계속할 것이라고 말했습니다. 하지만 그 이후에는 개발을 완전히 중단할 것입니다. 그리고 만약 오늘 Dino Deploy를 사용하고 있다면, 마이그레이션할 시간이 약 6개월밖에 없습니다. 결국 Anthropic이 Bun을 인수하고 Cloudflare가 지난 6월에 V를 인수한 후, 클라우드를 소유한 회사에 속하지 않은 유일한 주요 JavaScript 런타임은 바로 Node이며, 이것이 Ryan이 지난 8년 동안 대체하려고 노력했던 것입니다.
만약 여러분이 마이그레이션이 필요한 Dino 개발자 중 한 명이라면, 오늘 영상의 스폰서인 Jet Brains를 통해 적어도 이 과정을 조금 더 저렴하게 진행할 수 있습니다. 어린 시절의 재정적 트라우마 덕분에, 제가 코딩 에이전트에게 무엇을 시키려고 할 때마다 제 뇌는 그것이 몇 개의 토큰 비용이 들지 강박적으로 계산하기 시작합니다. 그래서 모든 Jet Brains 계정에 이제 Juny Light라는 무료 기본 모델이 제공되어 IDE와 CLI에 상주하는 것이 정말 좋습니다. 카운트다운 타이머가 있는 체험판은 없습니다. 그냥 가족을 실수로 파산시키지 않고 질문하고 잡무를 처리할 수 있는 무료 방법입니다.
저는 오래된 사이드 프로젝트에서 Juni CLI를 사용하여 여러 함수 이름을 바꾸고 테스트 코드를 스캐폴딩(scaffold)하는 데 사용해 봤는데, 몇 분 만에 $0으로 모든 것을 끝냈습니다. 더 복잡한 작업을 위해서는 여전히 Frontier 모델로 전환할 것이지만, Juny Light가 Jet Brains Air 내부에 상주하기 때문에 정말 쉽습니다. 여기서는 여러 에이전트를 병렬로 실행하고 그 변경 사항들을 적용되기 전에 모두 검토할 수 있습니다. 아래 링크에서 오늘 바로 Junyite를 무료로 사용해 보세요. 이것으로 코드 리포트(code report)를 마칩니다. 시청해 주셔서 감사합니다. 다음 영상에서 뵙겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube Fireship (개발 트렌드)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기