Cloudflare Launches Persistent, Stateful, Computer-like Environments for Agents

InfoQ · 2026.08.10

왜 지금 퍼시스턴트 에이전트 실행 환경이 중요한가

서버리스 아키텍처가 확산되면서 백엔드 개발자들은 오랫동안 "실행은 빠르지만 상태를 잃는다"는 근본적인 트레이드오프를 감수해왔다. Lambda나 Cloud Run 같은 일반적인 서버리스 컨테이너는 요청이 끝나면 컨텍스트가 사라지는 에프에머럴(ephemeral) 방식이다. 단순한 API 처리에서는 문제가 없지만, 여러 단계를 거치며 상태를 유지해야 하는 복잡한 작업 흐름에서는 명확한 한계가 드러난다.

Cloudflare가 공개한 Cloudflare Computer는 이 문제를 정면으로 다룬다. 기존 서버리스의 실행 단위를 넘어서, 상태를 유지하는 "컴퓨터에 가까운" 실행 환경을 오픈소스 런타임으로 제공한다는 점이 핵심이다. 이는 단순한 기능 추가가 아니라, 분산 환경에서 상태를 어떻게 설계할 것인가에 대한 새로운 접근 방식을 제시한다.

Cloudflare Isolates 기반 실행 모델의 설계 특징

Cloudflare Computer는 기존 Cloudflare Workers가 사용하는 Isolates 기반 실행 모델 위에 구축된다. V8 Isolates는 Docker 컨테이너보다 훨씬 가볍고 콜드 스타트가 거의 없는 것으로 알려져 있다. 여기에 퍼시스턴트 상태 관리 레이어를 결합함으로써 비용과 속도를 동시에 개선하겠다는 것이 Cloudflare의 설계 목표다.

실무적으로 볼 때, 이 모델은 기존 Java 백엔드 개발자가 익숙한 스레드 기반 상태 유지와는 다른 방식이다. 프로세스 메모리에 상태를 두는 대신, 실행 환경 자체가 상태의 라이프사이클을 관리한다. 이는 Durable Objects 개념의 연장선으로 이해할 수 있다.

// Durable Objects 방식의 상태 유지 개념 (JavaScript 예시)
export class MyAgent extends DurableObject {
  async fetch(request) {
    let count = (await this.ctx.storage.get("count")) || 0;
    count++;
    await this.ctx.storage.put("count", count);
    return new Response(`count: ${count}`);
  }
}

위처럼 실행 단위 자체에 영속적 스토리지가 결합된 구조는, Java의 @Stateful EJB나 세션 기반 설계와 개념적으로 유사하지만 분산 확장성 면에서 근본적으로 다르다.

Java 백엔드 관점에서 실무 적용 시 고려할 점

이 패러다임이 Java 웹 백엔드 개발자에게 직접적인 의미를 갖는 이유는 분산 상태 설계 문제가 공통의 과제이기 때문이다. Spring 기반 애플리케이션에서도 멀티스텝 워크플로우를 구현할 때 Redis 세션, DB 기반 상태 저장, 혹은 Saga 패턴 같은 복잡한 우회 방법을 써왔다.

Cloudflare Computer가 제시하는 모델에서 참고할 수 있는 설계 인사이트는 다음과 같다.

  • 실행 단위와 상태를 함께 캡슐화하는 설계: Java의 Actor 모델(Akka 등)과 유사한 철학
  • 콜드 스타트 제거를 위한 경량 격리 단위 선택: JVM의 무거운 컨테이너 기동 비용을 줄이는 방향 탐색 시 참고 가능
  • 오픈소스 런타임으로 공개: 벤더 종속 없이 자체 인프라에 응용할 수 있는 가능성

물론 Java 생태계에서 이를 그대로 채용하기 어렵다. JVM 특성상 Isolates와 같은 마이크로초 단위 격리는 현재로선 현실적이지 않다. 그러나 상태 관리 설계 철학, 특히 "어디에 상태를 두고 누가 라이프사이클을 책임지는가"라는 질문은 Java 백엔드 설계에도 직접 적용 가능한 사고 틀이다.

정리

  • Cloudflare Computer는 에프에머럴 컨테이너 방식을 벗어나, 상태를 유지하는 퍼시스턴트 실행 환경을 서버리스 위에 구현한 오픈소스 런타임이다.
  • Isolates 기반으로 콜드 스타트를 최소화하면서 비용·속도·확장성을 동시에 개선하는 것이 핵심 설계 목표다.
  • Java 백엔드 개발자에게는 기능 도입보다 "실행 단위와 상태 라이프사이클을 어떻게 결합할 것인가" 라는 설계 관점 자체가 실무에 유용한 인사이트다.
Source
InfoQ
원문 보기 →
← 목록으로 돌아가기