Cloudflare가 웹 화면부터 서버와 데이터베이스 연결, 배포까지 이어주는 개발 도구 묶음을 공개했다. 사내 앱을 만드는 팀은 직원마다 클라우드 접근 권한을 주는 대신, 관리자가 통제하는 공용 환경에 앱을 올리는 방식을 선택할 수 있다.

1. 개발 도구와 배포 환경을 함께 공개

Void는 앱을 만드는 개발 도구인 SDK, 자원 준비와 배포를 맡는 명령줄 도구인 CLI, 팀이 함께 쓰는 배포 환경인 Platform으로 구성된다. 원문은 세 제품을 하나의 JavaScript 패키지와 Vite 플러그인으로 공개했다고 설명한다. 설치 명령은 npm install void다.

처음에는 사용자가 앱을 올릴 단일 비공개 플랫폼을 구상했으나, VoidZero가 Cloudflare에 합류한 뒤 누구나 설치할 수 있는 오픈소스로 방향을 바꿨다. 사내 앱 개발을 장려하면서도 직원별 클라우드 권한 확대는 꺼리는 기업의 수요를 겨냥했다.

2. 공유 배포 환경의 운영 조건

Void Platform은 회사의 Cloudflare 계정 안에서 여러 앱을 호스팅하는 서비스인 Workers for Platforms 위에 설치된다. 관리자는 접근 권한과 자원 한도를 정하고, 명령줄 도구나 관리자 대시보드에서 배포 내역과 사용량을 확인한다. 승인된 사용자는 이 환경에 접속해 앱을 배포한다.

직접 운영하려면 Workers for Platforms와 R2를 활성화한 계정이 필요하다. 여기에 PostgreSQL 데이터베이스, 선택한 로그인 제공자의 계정, 앱에 사용할 도메인도 준비해야 한다.

플랫폼 코드를 복제해 사내 시스템과 연동하거나 배포 절차를 바꿀 수 있다. 다른 배포 플랫폼에 맞게 수정하는 것도 원문이 제시한 활용법이다. 다만 이는 코드를 고쳐 적용하는 방식이지, 다른 환경으로 곧바로 배포된다는 설명은 아니다.

3. 코드가 쓰는 자원을 배포 때 준비

Void SDK는 Vite 앱을 Cloudflare Workers 기반의 풀스택 앱으로 만든다. 앱 코드에서 필요한 자원 연결을 추론하고, 배포 시 데이터베이스나 큐 같은 자원을 자동으로 준비한다. 개발자가 코드와 클라우드 자원을 일일이 연결하는 작업을 도구가 맡는 방식이다.

시작할 때는 Vite 설정에 플러그인을 추가한다. 다음은 원문에 실린 예시다.

import { defineConfig } from "vite";
import { voidPlugin } from "void";
import { voidReact } from "@void/react/plugin";

export default defineConfig({
  plugins: [voidPlugin(), voidReact()],
});

예를 들어 void/db를 가져오면 개발 중에는 로컬 데이터베이스가 제공되고, 운영 배포에서는 D1이 자동으로 준비된다. 데이터베이스에서 화면까지 데이터 형식 정보를 이어주는 기능도 제공한다.

SDK 기능은 선택해서 조합할 수 있다. 기존 프레임워크에 경로 처리와 화면 생성을 맡기고, SDK에는 자원 접근과 인증 등을 맡기는 식이다. 따라서 기존 앱 구조 전체를 교체해야 하는 도구로 볼 필요는 없다.

4. 배포 명령과 두 가지 목적지

Void CLI는 cf 명령줄 도구를 바탕으로 만들어졌다. 코딩 에이전트와 함께 실패한 요청을 조사하거나 배포 로그를 읽고, 완성된 앱의 배포를 맡기는 용도를 제시한다.

void deploy를 처음 실행하면 Cloudflare 계정 로그인을 요청한다. 이후 앱을 빌드하고 데이터베이스 구조 변경을 적용한 뒤, 필요한 자원을 준비해 배포한다. 팀 관리 기능이 필요 없다면 공유 플랫폼을 설치하지 않고 자신의 계정으로 직접 배포할 수도 있다.

5. 줄어드는 배포 작업과 남는 관리 책임

공유 환경의 이익은 프로젝트마다 별도 계정과 자원을 준비하는 일을 줄인다는 데 있다. 대신 접근 정책과 자원 한도를 설계하고, 플랫폼 운영에 필요한 구성 요소를 갖추는 일은 관리자에게 남는다. 앱 작성자의 배포 부담을 낮추되 팀 차원의 운영 책임까지 없애는 것은 아니라는 해석이다.

Void는 앱 개발과 배포를 연결하는 도구이면서, 직원별 클라우드 권한 대신 팀 단위 운영을 선택하게 하는 배포 환경이다.