Vercel Sandbox 영속성 GA 공부 정리 | 기본값이 바뀐다는 것
Vercel Sandboxes 영속성 기능이 GA로 전환됐다. 파일시스템이 세션 간 자동으로 저장·복원된다는 발표를 읽고 정리했다.
Vercel 블로그에서 Sandbox 영속성 기능이 GA로 전환됐다는 발표가 있었다. “세션이 꺼져도 파일시스템 상태가 자동으로 저장된다”는 게 핵심이었다.
처음 읽을 때는 편의 기능 업데이트 정도겠거니 했다. 좀 더 읽어보니 생각보다 구조적인 변화였다.
1️⃣ 이게 뭐냐?
Vercel Sandbox는 클라우드에서 코드를 격리된 환경에서 실행하는 서비스다. 기존엔 세션이 끊기면 상태도 날아갔고, 스냅샷을 수동으로 관리해야 했다. GA 전환 이후엔 Sandbox.create()를 호출하면 파일시스템이 자동으로 저장되고 다음 세션에서 복원된다.
달라진 것 중 하나는 이름 기반 식별이다. 각 샌드박스에 고유한 이름을 붙일 수 있고, Sandbox.getOrCreate('my-sandbox')처럼 이름으로 찾거나 없으면 새로 만드는 방식으로 쓸 수 있다. Vercel이 세션 시작과 종료를 자동으로 관리하기 때문에 실행 중인지 확인할 필요가 없다.
이번에 새로 추가된 API:
Sandbox.fork()— 기존 샌드박스를 복제해서 새 걸 만든다Sandbox.getOrCreate()— 멱등성 있게 가져오거나 생성한다onCreate,onResume훅 — 생성·재개 시점에 콜백 등록- Tags — 샌드박스에 커스텀 속성을 부여해 멀티테넌트 추적에 쓴다
스냅샷 스토리지는 컴퓨팅과 별도로 청구된다. 단발성 작업엔 { persistent: false }를 명시해서 비용을 줄일 수 있다.
2️⃣ 내가 든 생각
getOrCreate() 패턴이 흥미로웠다. 있으면 가져오고 없으면 만드는 이 패턴은 DB나 캐시에서 자주 보이는데, 실행 환경에 그대로 적용된 게 낯설면서도 자연스러웠다. 상태를 가진 자원을 다루는 방법이 여러 레이어에서 닮아가는 것처럼 보였다.
이름이 생겼다는 것도 마찬가지다. 샌드박스에 이름이 붙는다는 건, 이 환경이 “일회용 컨테이너”가 아니라 “관리 대상 자원”으로 취급된다는 뜻이다. 이름을 부르면 어느 순간 깨어나 있는 방식이 디자이너 관점에서 흥미로웠다 — 객체를 다루는 사고방식이 실행 환경에도 스며드는 것 같아서.
👉🏻 onResume 훅이 특히 눈에 들어왔다. 재개 시점에 끼어들 수 있다는 건, React 컴포넌트 라이프사이클처럼 실행 환경에도 비슷한 사고방식이 생겼다는 인상이었다. 훅이라는 개념이 여러 곳에서 수렴하고 있는 건지 궁금해졌다.
💡 여기서 드는 질문? 영속성이 기본값이라면 비용 의식은 언제부터 해야 할까? 매번
persistent: false를 명시하는 게 습관이 돼야 하는 건지, 아니면 실제로 공부하다 보면 자연스럽게 감이 오는 건지 — 지금 단계에서는 잘 모르겠다.
⭐️ 마지막으로, 배우면서 남은 인상
정리해보니 이번 GA 전환의 핵심은 “영속성 자체”보다 “기본값이 바뀌었다”는 쪽에 가까운 일이었다. 이전에도 스냅샷은 있었는데 기본이 ephemeral이었다가 persistent로 뒤집혔다. 그 방향 전환이 Vercel이 Sandbox를 “일회용 실행기”보다 “이름 붙여 관리하는 장기 자원”으로 가져가려 한다는 걸 보여주는 것 같았다. 공부 끝에 남은 건 그 한 줄 정도다.