Vercel Workflows 정식 출시 (GA)

VVercel
Computing/SoftwareSmall Business/StartupsBusiness NewsInternet Technology

Transcript

00:00:00여러분, 안녕하세요. 좋은 아침입니다.
00:00:02오늘 함께해주셔서 정말 감사합니다.
00:00:03우리가 공유할 내용이 정말 기대되는데요.
00:00:06지난 10년 동안, Vercel에서 실행되는 코드는
00:00:10주로 즉각적인 웹 요청을 위해 구축되었습니다.
00:00:14하지만 오늘날 우리 고객들이 만드는 가장 흥미로운 소프트웨어는
00:00:17더 이상 그 모델에 맞지 않습니다.
00:00:20그리고 이러한 새로운 프로젝트의 수는 폭발적으로 증가하고 있습니다.
00:00:23불과 지난 몇 달 사이에,
00:00:25Vercel의 주간 배포 건수가 두 배로 늘었습니다.
00:00:28그리고 그 새로운 배포의 1/3은 코딩 에이전트로부터 나오는데,
00:00:31그 수치는 단 6개월 만에
00:00:341,000%나 상승했습니다.
00:00:35하지만 저에게 가장 흥미로운 부분은
00:00:38얼마나 많이 배포하느냐가 아니라, 무엇을 배포하느냐입니다.
00:00:41그 에이전트들이 에이전트를 배포하고 있습니다.
00:00:44그리고 우리 고객들이 구축하는 에이전트들은
00:00:48단순히 한 번 응답하고 기다리기만 하지 않습니다.
00:00:50추론하고, 도구를 호출하고, 사람을 기다렸다가,
00:00:53그 과정을 다시 반복해야 합니다.
00:00:55이러한 각 워크플로우에는 이를 뒷받침할 백엔드가 필요합니다.
00:00:58제가 Vercel에서 본 바로는,
00:01:02현재 가장 빠르게 제품을 출시하는 팀들은
00:01:05인프라를 재구축하거나
00:01:07직접 큐를 코딩하지 않습니다.
00:01:08재시도 로직을 처음부터 작성하거나,
00:01:11관측성을 직접 연결하지도 않죠.
00:01:13그런 일들은 이미 해결되었습니다.
00:01:15그들은 우리의 인프라 프리미티브를 사용합니다.
00:01:17우리가 지난 10년 동안 구축해 온 것들 말이죠.
00:01:20그래서 그들은 오로지 제품에만 집중할 수 있습니다.
00:01:24이것이 바로 워크플로우를 만든 이유입니다.
00:01:276개월 전에 베타 버전을 출시했는데,
00:01:30반응이 정말 대단했습니다.
00:01:33그리고 1억 번의 실행을 거친 지금,
00:01:36오늘 워크플로우의 정식 출시(GA)를 발표하게 되어 매우 기쁩니다.
00:01:41어떻게 작동하는지 보여드리겠습니다.
00:01:43제가 보여드릴 앱은
00:01:44직접 만든 생일 카드 생성기입니다.
00:01:47무엇이든 될 수 있겠지만,
00:01:49이 앱은 우리가 방금 논의한 모든 내용을 담고 있습니다.
00:01:51단일 요청으로 끝나지 않고,
00:01:54사람을 기다리며, 실패 시 재시도하고,
00:01:57진행 상황을 사용자에게 실시간으로 스트리밍합니다.
00:02:00작동 방식은 이렇습니다.
00:02:02저 자신에게 카드를 보내볼 텐데,
00:02:04먼저 이메일 주소를 입력하겠습니다.
00:02:05다음으로 날짜를 선택하고,
00:02:094월 23일을 고르겠습니다.
00:02:11저는 생일에 모닥불 피우는 걸 좋아해서,
00:02:14오션 비치 모닥불 파티로 정하고,
00:02:17제 자신인 퍼넷에게 보냅니다.
00:02:21데모를 쉽게 하려고 여기에 제 이메일을 입력하겠습니다.
00:02:24그러면 제 생일 파티에 제가 직접 RSVP를 하게 되겠죠.
00:02:27좋아요, 이제 '생성 및 전송'을 누르면
00:02:30생일 카드가 생성되기 시작하는 것을 볼 수 있습니다.
00:02:34Vercel 대시보드로 이동하면
00:02:35방금 들어온 실행 기록을 확인할 수 있습니다.
00:02:37클릭해 보겠습니다.
00:02:39프롬프트를 생성하고, 메시지를 만들고,
00:02:42이미지까지 생성하는 과정을
00:02:43실시간으로 볼 수 있습니다.
00:02:45이것이 바로 제가 말한 관측성입니다.
00:02:48모든 단계가 여기서 보입니다.
00:02:50무엇이 실행 중이고, 무엇이 완료되었는지,
00:02:52그리고 무엇이 대기 중인지 정확히 알 수 있죠.
00:02:54사용자 측 화면에서는
00:02:57카드가 생성되었고,
00:02:58RSVP 이메일이 발송된 것을 볼 수 있습니다.
00:03:01이 시점에서 워크플로우는 일시 중단됩니다.
00:03:04실제로 컴퓨팅 자원이 소모되지 않습니다.
00:03:07사람의 응답을 기다리는 중이며,
00:03:09이메일로 가서 지금 바로 응답할 수도 있고,
00:03:12몇 시간이나 며칠 뒤에 응답해도 됩니다.
00:03:15시스템은 진행 상황을 계속 추적할 것입니다.
00:03:18이메일을 확인하기 전에,
00:03:20먼저 CLI를 보여드리고 싶습니다.
00:03:22워크플로우는 첫날부터 CLI를 함께 제공하여
00:03:25관측성 대시보드에서 볼 수 있는 모든 것을
00:03:27직접 확인할 수 있게 해줍니다.
00:03:29즉, 여러분과 여러분의 에이전트가
00:03:32문제가 생겨 디버깅을 할 때
00:03:35전체 상황을 파악할 수 있다는 뜻입니다.
00:03:37자, 이제 이메일로 가보겠습니다.
00:03:40이메일이 바로 도착했을 겁니다.
00:03:43여기 있네요.
00:03:44RSVP를 해달라고 요청하고 있습니다.
00:03:46'예'를 눌러 응답하겠습니다.
00:03:49대시보드로 돌아가면 훅이 재개된 것을 볼 수 있고,
00:03:53대기 상태로 넘어갈 것입니다.
00:03:55사용자 대시보드에서도 동일한 상황이 보입니다.
00:03:58더 이상 RSVP를 기다리지 않고,
00:04:00이제 생일 카드를 보낼 수 있도록
00:04:014월 23일까지 기다리는 중입니다.
00:04:03여러분께 2주나 기다리게 할 순 없으니,
00:04:05다시 대시보드로 가서
00:04:06여기서 대기 상태를 깨워보겠습니다.
00:04:09그러면 워크플로우가 즉시 재개되고,
00:04:12전체 과정이 완료되는 것을 볼 수 있습니다.
00:04:14사용자 대시보드로 돌아가 보죠.
00:04:17엽서가 전송되었습니다.
00:04:18제 이메일에서도 RSVP 결과가 포함된
00:04:22생일 카드를 받게 될 것입니다.
00:04:23좋습니다.
00:04:24이제 코드를 보여드리고 싶은데,
00:04:26아까 제가 했던 말을 기억해 보세요.
00:04:29현재 가장 빠르게 제품을 내놓는 팀들은 큐를 다루거나
00:04:32상태와 인프라를 직접 관리하지 않습니다.
00:04:34그건 예전 방식이죠.
00:04:35워크플로우에서 오늘 본 모든 것은
00:04:38하나의 함수입니다.
00:04:40그리고 'useWorkflow' 지시어로 시작하죠.
00:04:43이 지시어 하나가 함수를 며칠 동안 실행하고,
00:04:48단계 사이에 중단했다가 중단된 지점부터 다시 시작하게 합니다.
00:04:52그래서 워크플로우가 단계를 호출할 때,
00:04:53예를 들어 프롬프트나 이미지를 생성할 때,
00:04:56워크플로우는 함수를 일시 중단하고
00:04:58작업을 백그라운드 큐에 넣습니다.
00:05:00실패하면 재시도까지 해주고,
00:05:02완료되면 워크플로우를 재개합니다.
00:05:05그 과정 내내 Vercel 대시보드에서
00:05:07모든 단계의 완벽한 관측성을 확보할 수 있습니다.
00:05:11하나를 클릭해 들어가 볼 수도 있는데,
00:05:13Vercel의 기본 설정상 모든 데이터가 암호화되어 있지만,
00:05:16입력값을 보실 수 있도록 복호화해 보겠습니다.
00:05:19이 기능은 대시보드와 CLI 모두에서 사용 가능합니다.
00:05:22워크플로우에는 기본 스트리밍 기능도 포함됩니다.
00:05:24이것이 제가 클라이언트에 실시간 업데이트를 보내서
00:05:29진행 상황을 라이브로 추적한 방법입니다.
00:05:31이 기능을 구현하기 위해 별도의
00:05:33데이터베이스를 가져올 필요가 없었습니다.
00:05:34클라이언트가 연결을 끊었다가 다시 연결해도 잘 작동합니다.
00:05:37이것은 지속적인 스트림이니까요.
00:05:39좋아요, 이제 후킹 부분을 보시죠.
00:05:42모든 RSVP에 대해 임시 웹훅 URL을
00:05:46즉석에서 생성하고 이메일로 보낸 다음,
00:05:50여기 아래에서 단순히 기다리기만 하면 됩니다.
00:05:52워크플로우는 모든 사람이
00:05:56링크를 클릭할 때까지 여기서 멈춥니다.
00:05:59데이터베이스는 전혀 관여하지 않으며,
00:06:01결과값은 로컬 자바스크립트 변수에 그대로 저장됩니다.
00:06:05워크플로우가 자체적으로 모든 상태를 유지합니다.
00:06:08이것이 바로 제가 이제는 사라졌다고 말한
00:06:11분산 시스템 메커니즘입니다.
00:06:12이런 것들을 더 이상 고민할 필요가 없습니다.
00:06:14마지막으로 생일 카드를 보내기 위해
00:06:17끝부분에서 대기(sleep)합니다.
00:06:18바로 여기죠.
00:06:19이 대기 시간은 몇 초가 될 수도 있고,
00:06:21방금처럼 며칠이나 몇 주가 될 수도 있습니다.
00:06:24대기하는 동안 워크플로우는 중단된 상태로 유지되며
00:06:27실행 중인 컴퓨팅 자원은 0입니다.
00:06:29깨어나면 상태를 유지한 채로
00:06:33중단되었던 지점부터 정확히 다시 시작합니다.
00:06:34이것이 전부입니다.
00:06:37위에서 아래로 읽으면서 끝까지 파악할 수 있는
00:06:40하나의 함수일 뿐이죠.
00:06:43모든 단계는 큐로 뒷받침되고,
00:06:45자동으로 재시도되며,
00:06:47자체적인 서버리스 함수에서 실행됩니다.
00:06:49제한 시간(timeout)이 없어서
00:06:51워크플로우는 필요한 만큼 오래 실행될 수 있습니다.
00:06:54이것이 바로 Vercel이
00:06:56모든 밑바탕을 처리한다는 의미입니다.
00:06:59여러분은 로직만 작성하세요. 나머지는 저희가 맡겠습니다.
00:07:02이번 데모에서는 간단한 사례를 보여드렸지만,
00:07:07우리 고객들은 워크플로우를 사용해
00:07:09엄청난 규모로 에이전트를 운영하고 있습니다.
00:07:12Mux는 워크플로우를 통해 비디오 생성 파이프라인이
00:07:17매번 안정적으로 실행되도록 보장합니다.
00:07:19Flora는 50개의 이미지 생성 모델에 걸쳐
00:07:23병렬 크리에이티브 에이전트를 워크플로우로 조율하고 있습니다.
00:07:27Durable은 소규모 팀임에도 불구하고
00:07:30300만 개의 고객 웹사이트를 호스팅하며,
00:07:33워크플로우를 사용하여 매일 새로운 에이전트를
00:07:35사용자들에게 배포하고 있습니다.
00:07:38데모를 시작하면서,
00:07:40고객들이 만드는 가장 흥미로운 소프트웨어는
00:07:42더 이상 단일 요청에 맞지 않는다고 말씀드렸습니다.
00:07:46그리고 이러한 앱들이 매일
00:07:50점점 더 많이 배포되는 것을 보고 있습니다.
00:07:51에이전트가 에이전트를 배포하고 있고,
00:07:54그것을 만드는 팀들은 큐에 대해 고민하는 대신
00:07:58고객의 문제 해결에 집중하고 있습니다.
00:08:01이러한 변화는 Vercel 내부에서만 일어나는 일이 아닙니다.
00:08:05고객 배포 건수는 두 배로 늘고 있으며,
00:08:07인프라를 직접 구축하는 엔지니어는 그 어느 때보다 적습니다.
00:08:11여러분이 만들고 싶은 앱이나 에이전트가 무엇이든,
00:08:16워크플로우가 이를 안정적이고,
00:08:18오래 지속되며, 견고하고, 관측 가능하게 만들어 줄 것입니다.
00:08:22개인 노트북에서 수백만 명의 사용자까지,
00:08:25동일한 애플리케이션 코드로 가능합니다.
00:08:27워크플로우는 오늘부터 정식으로 사용 가능하니,
00:08:31제대로 작동하는 무언가를 지금 바로 배포해 보세요.
00:08:37[오디오 없음]

Key Takeaway

Vercel Workflows는 큐 관리나 상태 유지 같은 복잡한 인프라 구축 없이도 단일 함수 내에서 장기 실행 에이전트와 복잡한 비즈니스 로직을 안정적으로 구현하도록 지원한다.

Highlights

Vercel의 주간 배포 건수가 최근 몇 달 사이 2배로 증가했으며 신규 배포의 1/3은 코딩 에이전트에 의해 생성된다.

에이전트 관련 배포 수치는 단 6개월 만에 1,000% 상승하며 소프트웨어 개발 패러다임의 변화를 증명했다.

Vercel Workflows는 1억 번의 베타 실행을 거쳐 정식 출시되었으며 서버리스 환경에서 타임아웃 없는 장기 실행 기능을 제공한다.

useWorkflow 지시어를 사용하면 별도의 데이터베이스 구축 없이도 로컬 변수에 상태를 유지하며 며칠 또는 몇 주 동안 함수를 실행할 수 있다.

워크플로우 대기 상태에서는 컴퓨팅 자원 소모가 0으로 유지되어 인프라 비용 효율성을 극대화한다.

Durable은 워크플로우를 활용해 소규모 팀으로도 300만 개의 고객 웹사이트를 호스팅하고 매일 신규 에이전트를 배포한다.

Timeline

웹 요청 모델에서 에이전트 기반 모델로의 변화

  • 전통적인 즉각적 웹 요청 모델은 현대의 복잡한 소프트웨어 요구사항을 충족하기에 부족하다.
  • 코딩 에이전트에 의한 배포가 6개월 만에 10배로 증가하며 에이전트가 에이전트를 배포하는 단계에 진입했다.
  • 성공적인 팀은 직접 큐를 코딩하거나 재시도 로직을 작성하는 대신 인프라 프리미티브를 활용한다.

지난 10년간 Vercel 코드는 즉각적인 응답에 최적화되어 있었으나 현재는 추론, 도구 호출, 사람의 개입을 기다리는 복잡한 워크플로우가 대세로 자리 잡았습니다. 주간 배포 건수가 2배로 늘어나는 폭발적 성장세 속에서 엔지니어들은 더 이상 인프라 재구축에 시간을 낭비하지 않습니다. 대신 이미 해결된 인프라 구성 요소를 사용하여 제품 로직에만 집중하는 경향이 뚜렷해졌습니다.

생일 카드 생성기를 통한 워크플로우 작동 방식

  • Vercel Workflows는 단일 요청으로 끝나지 않는 장기 실행 프로세스를 실시간으로 관리한다.
  • 사람의 이메일 응답(RSVP)을 기다리는 동안 워크플로우는 일시 중단되며 자원을 전혀 소모하지 않는다.
  • 대시보드와 CLI를 통해 실행 중인 모든 단계의 입력값과 진행 상황을 투명하게 관측할 수 있다.

생일 카드 생성 앱은 이메일 발송, 이미지 생성, 사람의 응답 대기, 특정 날짜까지의 대기라는 복잡한 단계를 포함합니다. 워크플로우는 각 단계를 백그라운드 큐에 넣어 처리하며 실패 시 자동으로 재시도합니다. 특히 사람의 응답을 기다리거나 수주 뒤의 특정 시점까지 대기하는 동안 컴퓨팅 비용이 발생하지 않는다는 점이 핵심입니다.

useWorkflow를 활용한 상태 유지 및 코드 구현

  • useWorkflow 지시어 하나로 함수를 며칠 동안 실행하고 중단된 지점부터 다시 시작할 수 있다.
  • 데이터베이스를 별도로 연결하지 않아도 결과값이 로컬 자바스크립트 변수에 그대로 유지된다.
  • 임시 웹훅 URL을 즉석에서 생성하여 외부 응답을 수신할 때까지 프로세스를 안전하게 멈춘다.

기존의 분산 시스템 메커니즘을 직접 구현할 필요 없이 위에서 아래로 읽히는 하나의 함수로 모든 로직을 작성합니다. 워크플로우는 자체적으로 상태를 관리하므로 클라이언트 연결이 끊겨도 지속적인 스트리밍을 보장합니다. 타임아웃 제한이 없는 서버리스 함수 환경을 제공하여 개발자는 오직 로직 작성에만 전념하고 나머지는 Vercel 인프라가 처리합니다.

에이전트 운영 규모 확장 및 기업 활용 사례

  • Mux는 비디오 생성 파이프라인의 안정적 실행을 위해 워크플로우를 도입했다.
  • Flora는 50개의 이미지 생성 모델을 조율하는 병렬 크리에이티브 에이전트를 운영한다.
  • 워크플로우는 개인 노트북의 개발 환경부터 수백만 사용자 대상의 서비스까지 동일한 코드로 확장 가능하다.

이미 많은 기업이 대규모 에이전트 운영에 워크플로우를 사용하고 있습니다. Durable의 경우 소규모 팀임에도 불구하고 300만 개의 사이트를 관리하며 매일 새로운 에이전트를 배포하는 성과를 거두고 있습니다. 인프라를 직접 구축하는 엔지니어 비중은 줄어들고 있으며 워크플로우는 이를 통해 더 견고하고 관측 가능한 애플리케이션 개발 환경을 제공합니다.

Community Posts

View all posts