Vercel: 안티 벤더 락인

I
Inkyu Oh

Front-End2025.11.13

Vercel 블로그 포스트 번역
2025년 11월 10일



Vercel: The anti-vendor-lock-in cloud


Vendor lock-in은 클라우드 플랫폼을 선택할 때 중요한 요소입니다. 클라우드 플랫폼은 특정 프리미티브에 맞춰 개발하도록 요구하여 사용자를 묶어둘 수 있습니다. Vercel은 다른 접근 방식을 취합니다: Vercel이 아닌 프레임워크를 위해 코드를 작성합니다.
AWS에서는 Lambda functions, NAT Gateways, DynamoDB tables를 구성합니다. Cloudflare에서는 Workers를 작성하고, KV stores, Durable Objects를 사용하며, Worker Service Bindings로 서비스를 연결합니다. 이러한 프리미티브는 해당 벤더에만 존재하므로 다른 플랫폼으로 이동하려면 애플리케이션 아키텍처를 다시 작성해야 합니다.
클라우드 플랫폼은 종종 이러한 선택을 대신합니다. 그들은 독점적인 프리미티브, API, 서비스를 정의하여 코드가 그들의 생태계에 깊이 들어가도록 하여 떠나는 것이 비현실적이게 만듭니다.
Vercel에서는 반대의 접근 방식이 더 나은 소프트웨어와 건강한 웹을 만든다고 믿습니다. 우리는 개발자가 원해서 머물기를 원합니다. 이는 오픈 도구를 만들고, 표준을 수용하며, 코드가 어디에서 실행되든 이식성을 유지하는 것을 의미합니다.
Vercel은 다르게 작동합니다. 프레임워크 코드를 해석하고 인프라를 자동으로 프로비저닝합니다. 애플리케이션은 Vercel에서 실행되는지 알 필요가 없습니다. Vercel 모듈을 가져오거나 Vercel API를 호출할 필요가 없습니다. 이것이 framework-defined infrastructure입니다.

What vendor lock-in actually means

Vendor lock-in은 플랫폼이 오픈 표준에서 벗어난 기능을 구축하고, 애플리케이션 코드에서 독점 API를 통해 접근할 때 발생합니다. 애플리케이션이 이러한 기능을 사용하면 코드를 다시 작성하지 않고는 다른 플랫폼으로 이동할 수 없습니다.
AWS Step Functions나 Cloudflare Durable Objects와 같은 벤더 프리미티브에 맞춰 개발할 때, 이러한 종속성은 애플리케이션 코드에 존재합니다. 비즈니스 로직이 플랫폼 API에 연결되어 있어, 이동하려면 다른 프리미티브에 맞춰 로직을 다시 작성해야 합니다.
Next.js App Router, Remix loaders, SvelteKit endpoints, Nitro storage adapters와 같은 프레임워크 관례는 다르게 작동합니다. 플랫폼이 아닌 프레임워크에 맞춰 개발합니다. 여러 플랫폼이 동일한 프레임워크 코드를 실행할 수 있어, 이를 지원하는 인프라에서 애플리케이션을 이식할 수 있습니다.


Framework-defined infrastructure means portable code

이 이식성은 framework-defined infrastructure (FDI) 덕분에 가능합니다. FDI는 플랫폼이 코드를 읽고 필요한 인프라를 결정한다는 것을 의미합니다. 프레임워크의 패턴을 따르고, Vercel이 나머지를 처리합니다.
복잡한 프로덕션 애플리케이션은 코드베이스 어디에도 vercel을 언급하지 않고 Vercel에서 실행됩니다. Next.js 관례(또는 Remix, SvelteKit, Nuxt, 40개 이상의 지원 프레임워크 중 하나)를 따릅니다. Vercel은 빌드 출력을 분석하고 미들웨어, 함수, 정적 자산, 캐싱을 적절히 프로비저닝합니다.

Local development requires no Vercel tooling

벤더 프리미티브에 기반한 플랫폼은 로컬 개발을 위한 복잡한 시뮬레이터가 필요합니다. Cloudflare는 Workers를 로컬에서 시뮬레이트하기 위해 Wrangler를 제공합니다. AWS 개발자는 Lambda 및 기타 서비스를 모의하기 위해 LocalStack 또는 SAM CLI를 사용합니다. 이러한 도구는 프로덕션 동작을 근사하지만 정확히 일치하지는 않습니다.
FDI를 사용하면 프레임워크의 표준 개발 서버를 실행합니다. Next.js의 경우, next dev를 실행합니다. Remix의 경우, remix dev를 실행합니다. 작성한 코드는 로컬과 프로덕션에서 동일하게 실행됩니다. 설치할 Vercel CLI가 없으며, 환경 간 차이를 만드는 시뮬레이션 레이어도 없습니다.
이 아키텍처 선택은 이식성에 직접적인 영향을 미칩니다. 플랫폼 프리미티브 대신 프레임워크 표준에 맞춰 작성할 때, 코드는 수정 없이 다른 곳에서 실행될 수 있습니다.

Most Next.js apps already run outside of Vercel

Next.js는 Vercel에서 가장 널리 배포된 프레임워크입니다. 이로 인해 잠금이 발생한다고 생각할 수 있지만, 데이터는 그렇지 않음을 보여줍니다.
Next.js 원격 측정 데이터를 기반으로, 약 70%의 Next.js 애플리케이션이 Vercel 외부에서 실행됩니다. 이는 Vercel 배포가 원격 측정을 비활성화하는 경우가 드물고, 자체 호스팅 배포는 종종 옵트아웃하여 데이터에 나타나지 않기 때문에 비-Vercel 배포를 과소평가할 가능성이 큽니다.
많은 회사가 현재 자체 인프라에서 Next.js를 자체 호스팅하여 이 이식성을 실현하고 있습니다. Walmart.com은 매일 수백만 명의 쇼핑객에게 서비스를 제공하며, Nike.com은 자체 시스템에서 글로벌 규모로 운영되며, Claude.ai도 자체 인프라에서 Next.js로 애플리케이션을 구축했습니다. 이러한 대규모 프로덕션 애플리케이션은 이 회사들이 제어하는 인프라에서 막대한 트래픽을 처리합니다.
모든 주요 클라우드 벤더는 Next.js 배포 옵션을 제공합니다. Netlify, Cloudflare, AWS Amplify, Google Cloud, Azure는 모두 Next.js를 네이티브로 지원합니다. 맞춤형 인프라 설정을 위해, OpenNext와 같은 오픈 소스 프로젝트는 Vercel과 유사한 서버리스 아키텍처로 Next.js를 실행할 수 있게 합니다.

Next.js adapters formalize the framework-platform contract

플랫폼 제공업체는 통합이 예상보다 어렵다고 말했습니다. 이것이 Next.js 팀이 Build Adapters를 명시적 버전 API로 구축하여 프레임워크와 플랫폼 간 계약을 공식화한 이유입니다. 어댑터는 Next.js가 출력하는 것, 각 경로에 필요한 인프라 기능, 플랫폼이 이를 처리하는 방법을 정의합니다.
Vercel에 배포된 모든 Next.js 16 애플리케이션은 다른 플랫폼에 제공되는 동일한 어댑터 API를 사용합니다. Vercel은 특별한 접근 권한이나 다른 통합 지점을 가지고 있지 않습니다. Vercel이 기능을 검증하기 위해 사용하는 테스트 스위트는 모든 플랫폼 제공업체에 제공됩니다.
이는 우리의 Open SDK 전략의 일환입니다: 모든 플랫폼에서 사용할 수 있는 오픈, 이식 가능한 프레임워크, SDK, 도구를 구축하는 것입니다.

Standards first, portable always

우리는 가능한 한 표준 프로토콜을 우선시합니다. Vercel Marketplace에서 제공되는 데이터베이스는 Postgres 및 Redis와 같은 표준 프로토콜을 사용합니다. 이는 Neon, Supabase, Upstash와 같은 마켓플레이스 파트너를 통해 제공되거나, 운영하는 인스턴스에 연결할 수 있습니다. AWS는 우리의 선호 클라우드 제공업체이므로, 애플리케이션과 동일한 AWS 지역에 호스팅된 데이터베이스에 연결할 때 저지연 연결을 제공합니다.
같은 철학이 우리의 AI 인프라에도 적용됩니다. AI Gateway는 OpenAI API 형식을 지원하며, 이는 OpenAI, Anthropic 및 대부분의 다른 모델 제공업체에 의해 사실상의 산업 표준으로 확립되었습니다. OpenAI를 직접 호출하거나 AI Gateway를 통해 라우팅하는 것은 구성에서 API 엔드포인트 URL을 변경하는 것만으로 가능합니다. 코드 변경은 필요하지 않습니다.
일부 서비스는 아직 산업 표준이 존재하지 않기 때문에 독점 API가 필요합니다. Vercel Sandbox는 신뢰할 수 없는 코드의 안전한 실행을 제공합니다. Edge Config는 분산 구성에 대한 간단한 get(key) 인터페이스로 초저지연 읽기를 제공합니다. 대안으로 이동하려면 API를 사용하도록 코드를 업데이트해야 합니다. 그러나 이러한 서비스는 EC2 또는 자체 서버를 포함한 모든 인프라에서 호출할 수 있으며, Vercel을 호스팅에 사용해야 할 필요는 없습니다. 이러한 사용 사례에 대한 산업 표준 API가 등장하면 이를 구현할 것입니다.

Why we build this way

이식 가능한 오픈 소스 소프트웨어를 구축하는 것은 Vercel의 핵심 가치입니다. 우리는 오픈 소스를 구축하여 훌륭한 오픈 소스 소프트웨어를 계속 개발할 수 있는 지속 가능한 비즈니스를 창출합니다. 우리의 목표는 Vercel 고객이든 아니든 모든 사람, 모든 곳에서 소프트웨어의 기본 품질을 향상시키는 것입니다.
개발자가 Next.js, Nuxt, AI SDK를 배울 때, 그 투자가 단일 플랫폼에 갇히지 않을 것이라는 신뢰가 필요합니다. 그 신뢰는 더 넓은 채택을 유도합니다. 더 넓은 채택은 더 큰 생태계를 만듭니다. 더 큰 생태계는 Vercel을 포함한 모든 플랫폼을 더 좋게 만듭니다.
우리는 당신이 Vercel에 머물기를 원합니다. 선택해서 머물기를 원합니다. 그 선택을 얻는 가장 좋은 방법은 어디서나 작동하는 도구와 그 도구를 더 좋게 만드는 플랫폼을 구축하는 것입니다.

0
23

댓글

?

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!