샌드박스 지속성, 이제 정식 출시
Source: Vercel Blog
2026년 5월 26일
Vercel Sandboxes는 이제 세션 간에 파일 시스템 상태를 자동으로 저장하고 복원합니다. 지속성(persistence)은 기본적으로 활성화되어 있어 스냅샷을 관리하거나 상태를 수동으로 추적할 필요가 없습니다.
각 샌드박스는 프로젝트 내에서 고유한 참조 역할을 하는 내구성 있는 **맞춤형 이름**을 가집니다. 이름으로 샌드박스를 생성, 조회 또는 재개할 수 있습니다. Vercel은 워크플로우를 방해하지 않으면서 세션을 자동으로 시작하고 종료합니다.
지속 가능한 샌드박스 만들기
Sandbox.create()를 호출하면 지속성이 기본적으로 활성화됩니다:
import { Sandbox } from "@vercel/sandbox";
// 파일 시스템이 자동으로 스냅샷됩니다
const sandbox = await Sandbox.create({ name: "my-sandbox" });
await sandbox.runCommand("npm", ["install"]);
await sandbox.stop();
각 자동 스냅샷은 스냅샷 스토리지를 사용하며, 이는 컴퓨팅 비용과 별도로 청구됩니다. 일시적인 작업에는 지속성을 해제하여 스토리지 비용을 최소화하세요:
import { Sandbox } from "@vercel/sandbox";
const sandbox = await Sandbox.create({ persistent: false });
// 또는 기존 샌드박스를 업데이트합니다.
await sandbox.update({ persistent: false });
CLI에서 지속성을 해제하려면 sandbox create에 --non-persistent 플래그를 전달하면 됩니다. 비영구 샌드박스는 세션이 종료될 때 파일 시스템을 삭제합니다.
지속 가능한 샌드박스 재개
재개는 자동으로 이루어집니다. runCommand()나 writeFiles()와 같이 중지된 샌드박스에 대한 호출은 가장 최신 스냅샷에서 새로운 세션을 시작합니다.
import { Sandbox } from "@vercel/sandbox";
const resumedSandbox = await Sandbox.get({ name: "my-sandbox" });
// 자동으로 샌드박스를 재개합니다.
await resumedSandbox.runCommand("npm", ["test"]);
기타 개선 사항
Sandbox.fork(): 기존 샌드박스로부터 새로운 샌드박스 생성Sandbox.getOrCreate(): 장기 운영 샌드박스를 위한 멱등적 조회·생성Sandbox.delete(): 샌드박스를 영구 삭제- 향상된
sandbox.stop(): 스냅샷 메타데이터와 함께 활성 CPU 및 네트워크 전송 총량 반환 - 라이프사이클 훅:
create,get,getOrCreate에 대한onCreate및onResume훅 제공 - Tags: 다중 테넌트 추적을 위해 샌드박스에 사용자 정의 속성 할당
시작하기
최신 버전으로 업그레이드하면 기본적으로 지속 가능한 샌드박스를 만들 수 있습니다:
pnpm install @vercel/sandbox@latest # SDK
pnpm install -g sandbox@latest # CLI
지속 가능한 샌드박스에 대한 자세한 내용은 문서를 참고하세요.