목차
- 오늘 한 것 — API 에러 추적과 doc 탐방
- 새로 알게 된 것 — World Model이 본진이라는 말의 무게
- 코드 — 백엔드 입장에서 손이 가는 부분
- 메모 — 전환자 시각에서 챙겨두는 것
$ curl -X POST https://api.dev.runwayml.com/v1/image_to_video \
-H "Authorization: Bearer $RUNWAY_API_KEY" \
-H "X-Runway-Version: 2024-09-13" \
-H "Content-Type: application/json" \
-d @payload.json
HTTP/2 400
{
"error": "Invalid version",
"message": "X-Runway-Version is invalid or no longer supported."
}
실제로, 사이드 프로젝트에서 정지 이미지에 짧은 모션 클립을 붙이려고 Runway API를 호출하다 만난 에러다. 헤더 한 줄을 잘못 잡은 것뿐이라 5분이면 끝날 줄 알았다. 그런데 changelog로 들어갔다가 옆 탭의 Research 페이지로 넘어갔다가, CEO 인터뷰 영상까지 따라가게 됐다. 회사 방향이 비디오 생성 SaaS가 아니라 다른 곳을 가리키고 있다는 게 또렷했다. 이거 왜 다들 비디오 모델 화질 비교만 하고 있나 싶었다.
특히, 오늘의 TIL은 Runway가 General World Model로 가고 있다는 사실 그 자체보다, 그 방향이 백엔드 전환자 입장에서 어떤 의미인지에 대한 메모에 가깝다.
오늘 한 것 — API 에러 추적과 doc 탐방
에러 자체는 흔한 케이스였다. Runway API는 X-Runway-Version 헤더로 활성 버전을 강제 지정하는 방식이고, 작성 시점(2026년 4월) 기준 권장 활성 버전이 changelog에 명시돼 있다 (출처: Runway API Reference, Versioning). 만료된 버전을 박아두면 무조건 400으로 떨어진다. 헤더 한 줄 바꾸니 정상으로 돌아왔다.
특히, 호출 흐름은 평범하다. 이미지 URL과 프롬프트, duration, ratio를 POST하면 task ID가 떨어지고, 그걸 polling endpoint에 찔러서 SUCCEEDED/FAILED를 기다리는 식이다. 비동기 작업 큐로 익숙한 패턴이라 백엔드 관점에선 새로울 게 없다.
이처럼, 이상했던 건 doc 사이트의 무게중심이었다. Product 페이지보다 Research 페이지가 두껍다. 모델 카드, 데이터셋 문서, 평가 방법론, world model 관련 페이퍼 요약. SaaS 회사 페이지가 아니라 연구실 페이지에 가깝다. CEO Cristóbal Valenzuela의 최근 인터뷰 몇 개를 이어서 보고 나니 이게 우연이 아니라는 게 분명해졌다. 회사 톤 자체가 "툴을 파는 회사"보다 "모델을 만드는 회사" 쪽으로 기울어 있다.
새로 알게 된 것 — World Model이 본진이라는 말의 무게
General World Model이라는 개념
게다가, Runway는 2023년 12월에 General World Models(GWM)라는 연구 방향을 공식 발표했다 (출처: Runway Research, "General World Models", 2023-12-11). 정의는 짧다 — "내부적으로 환경의 표상을 구축하고, 그 안에서 미래 사건을 시뮬레이션하는 AI 시스템".
언어 모델이 텍스트로부터 언어 구조를 학습한 것처럼, world model은 비디오와 센서 데이터로부터 "세계가 어떻게 작동하는지"를 학습한다는 발상이다. 이미지 생성 → 비디오 생성 → world model 시뮬레이션이라는 사다리에서, 비디오 생성은 두 번째 칸인 셈이다. 가장 위 칸까지 가야 본 게임이라는 게 회사 입장이다.
Valenzuela는 최근 인터뷰에서 한 발 더 나갔다. 비디오 생성은 GWM으로 가는 중간 산출물이지 최종 목표가 아니라는 표현을 거의 모든 자리에서 반복한다. 영상은 모델이 세계를 학습한 흔적이라는 비유도 자주 쓴다. 매출원과 연구 목표를 같은 모델이 동시에 책임지는 구도다. 비디오 SaaS는 캐시카우, GWM은 다음 베팅이라는 그림이 깔끔하게 그려진다.
비디오 생성과 무엇이 다른가
실제로, 여기서 한 번 헷갈렸다. 비디오 생성 모델도 어쨌든 다음 프레임을 예측하는 모델인데, world model이랑 뭐가 다른가? 한참 더 읽고 나서 정리한 차이는 "조작 가능성"이다. 영상을 그럴듯하게 합성하는 것과, 그 영상 속 객체를 외부 입력으로 일관되게 조작할 수 있는 건 별개의 문제다.
| 구분 | 비디오 생성 모델 | General World Model |
|---|---|---|
| 주된 목표 | 그럴듯한 시퀀스 출력 | 환경 표상 + 인터랙션 |
| 입력 | 텍스트/이미지/짧은 비디오 | 위 + 행동/상태 신호 |
| 일관성 단위 | 짧은 클립 | 장기 시뮬레이션 |
| 활용 도메인 | 콘텐츠 제작 | 콘텐츠 + 시뮬레이션/로봇/게임 |
| 평가 지표 | 화질, 모션 자연스러움 | 위 + 물리적 그럴듯함, 인과 일관성 |
예를 들어, 표를 만들고 나니 게임 엔진이 떠올랐다. 실제로 Valenzuela도 "게임 엔진은 명시적 규칙으로 세계를 모사하지만, world model은 데이터로 그것을 학습한다"는 식의 비유를 자주 쓴다. Unreal과 Unity가 손으로 작성된 물리 엔진이라면, GWM은 데이터로 학습된 물리 엔진이다. 후자가 무서운 이유는, 학습 데이터의 양에 따라 표현할 수 있는 도메인이 무한대로 넓어진다는 점에 있다.
또한, 또 하나 분명한 차이가 있다. 비디오 생성 모델의 평가 지표는 사람이 보고 그럴듯한가에 머문다. World model은 거기에 더해 "물리적으로 말이 되는가", "인과 관계가 일관되는가"가 핵심 지표가 된다. 이게 평가 파이프라인을 바꾼다. 단순 화질/FID 점수로는 부족하다.
다른 회사들도 같은 방향을 본다
예를 들어, 이 발언이 마케팅 슬로건이 아닌 이유는 빅테크 라인업이 같은 단어를 같은 시점에 쓰고 있기 때문이다. OpenAI의 Sora는 기술 보고서에서 모델을 "world simulator"라고 명시했고 (출처: OpenAI, "Video generation models as world simulators", 2024-02), Google DeepMind는 Genie 2를 "playable world model"로 발표했다 (출처: Google DeepMind, Genie 2 blog, 2024-12). Genie 2 데모는 정지 이미지를 던지면 키보드 입력으로 캐릭터를 움직일 수 있는 시뮬레이션을 만든다.
세 회사가 같은 단어를 다른 보도자료에서 동시에 쓰고 있다는 건, 이게 한 회사의 비전이 아니라 산업 차원의 컨센서스에 가깝다는 뜻이다. 다만 회사마다 강조점은 다르다. Runway는 크리에이터 도구에서 시뮬레이션으로 확장하는 경로, OpenAI는 비디오 모델의 사이즈 스케일링, DeepMind는 액션 컨디셔닝과 인터랙티브성에 무게가 실린다. 같은 산을 다른 등산로로 오르고 있는 모양새다.
코드 — 백엔드 입장에서 손이 가는 부분
즉, 프론트만 하던 시절엔 이런 모델을 "API에 쏘면 결과 받는 박스"로 봤다. 백엔드를 만진 지 2년 되니, 어디서 비용과 운영 리스크가 터지는지 먼저 보인다.
# 핵심은 모델 호출이 아니라 polling/큐 인프라다
import os, time, httpx
API = "https://api.dev.runwayml.com/v1"
HEADERS = {
"Authorization": f"Bearer {os.environ['RUNWAY_API_KEY']}",
# 작성 시점(2026-04) 기준. 활성 버전은 changelog에서 항상 확인할 것
"X-Runway-Version": "2024-11-06",
"Content-Type": "application/json",
}
def submit(image_url: str, prompt: str) -> str:
r = httpx.post(
f"{API}/image_to_video",
json={
"promptImage": image_url,
"promptText": prompt,
"duration": 5, # 초 단위 — 길이로 비용이 늘어난다
"ratio": "1280:768",
},
headers=HEADERS, timeout=30,
)
r.raise_for_status()
return r.json()["id"]
def poll(task_id: str) -> str | None:
# 운영에선 워커가 잡고, 결과 URL은 즉시 자체 스토리지로 옮긴다
while True:
s = httpx.get(f"{API}/tasks/{task_id}", headers=HEADERS).json()
if s["status"] in {"SUCCEEDED", "FAILED"}:
return s.get("output", [None])[0] if s["status"] == "SUCCEEDED" else None
time.sleep(3)
결국, 코드 자체는 평범하다. 운영에 들어가면 다른 곳에서 문제가 터진다.
먼저 작업 시간이 수십 초에서 수 분이라 동기 호출은 즉시 무너진다. 큐에 태우고 워커가 polling하는 구조가 기본이다. Celery, RQ, SQS 어떤 조합이든 상관없지만 retry/backoff가 반드시 들어가야 한다. 결과 URL은 만료가 짧다. 받자마자 자체 스토리지(S3, R2 등)로 옮기는 단계가 필수다. 안 그러면 며칠 뒤 콘텐츠가 통째로 깨진다. 비용은 초 단위 과금에 가까워서, 프론트 UI에서 길이를 강제로 묶지 않으면 잘 새어나간다.
여기까지는 비디오 모델을 그냥 쓸 때 이야기다. World model 시대로 넘어가면 한 가지가 더 추가된다. 상태(state)를 어디에 둘 것인가.
지금 비디오 API는 stateless에 가깝다. 입력 → 출력, 끝. World model 기반 API는 시뮬레이션 세션을 유지하는 형태가 자연스럽다. Genie 2 데모가 그렇다. 사용자의 키 입력을 받아 다음 프레임을 만들어내는 구조다. 이게 상용 API로 풀리면, LLM 대화 세션 상태를 관리하던 익숙한 문제가 영상 도메인에서 그대로 반복된다. 세션 키, 만료 시각, 가속기 점유율, 동시 세션 수 제한, 입력→출력 지연 SLO. 단어가 다 익숙하다. 게임 서버 운영팀이 다뤄온 그 단어들이다.
메모 — 전환자 시각에서 챙겨두는 것
그래서, 프론트 시절엔 "어떤 효과를 만들 수 있나"가 가장 궁금했다. 백엔드로 옮기고 나니 "이걸 어떻게 안정적으로 운영하나"가 먼저 떠오른다. World model이 상용 API로 풀리면 영상 생성 인프라보다 실시간 시뮬레이션 인프라에 가까운 형태가 될 것 같다. WebRTC 류의 저지연 채널, stateful 세션 매니저, 가속기 풀 스케줄러 — 게임 서버에서 빌려올 패턴이 많다.
흥미로운 건 이게 프론트엔드 쪽에도 똑같이 영향을 준다는 점이다. 결과를 일방적으로 받는 컴포넌트가 아니라, 사용자 입력을 실시간으로 모델에 흘려보내는 컨트롤러 형태로 UI가 바뀐다. 두 세계의 경계가 흐려진다. 프론트→백엔드를 거쳐온 입장에선, 양쪽 어휘를 모두 알아두면 그만큼 쓸모 있는 위치에 서게 된다는 신호로 읽힌다.
지금 당장 해볼 만한 액션을 세 개로 추리면:
- Runway/OpenAI/DeepMind 세 회사의 research 페이지를 RSS로 묶어두기. 모델 카드와 평가 페이지 업데이트가 product 발표보다 먼저 오는 경우가 많다. 방향성을 한 발 빨리 잡을 수 있다.
- 운영 중인 비동기 작업 큐의 retry/backoff/타임아웃 정책을 다시 점검하기. 영상 모델 워크로드는 LLM 호출보다 응답 분산이 훨씬 크다. 기존 LLM 기준으로 잡아둔 타임아웃이면 헛도는 워커가 늘어난다.
- 결과 URL 자체 스토리지 이관 파이프라인 미리 만들기. 제공자 만료 정책에 의존하면 콘텐츠가 통째로 사라진다. 한 단계만 넣어두면 평생 안 깨진다.
따라서, 다음엔 DeepMind Genie 2 데모를 따라가면서, 시뮬레이션 세션을 백엔드 추상화로 어떻게 모델링할지 작은 스케치를 그려볼 생각이다.
관련 글
- AI 고객 인터뷰 자동화 — Listen Labs $69M 투자와 시장 변화 – AI가 고객 인터뷰를 직접 수행하는 시대가 열렸다. Listen Labs의 $69M 투자 유치를 기점으로, 기존 리서치 도구와의 차이점과 …
- OpenAI GPT-5.5 슈퍼앱 전략, WeChat 모델이 미국에서 되는가 – 전환자의 메모 – 슈퍼앱은 한 앱으로 일상의 거의 모든 거래를 소화하는 플랫폼을 말한다. OpenAI가 ChatGPT를 그 방향으로 밀고 있다는 이야기가 최…
- AI 개발자 격차, Stanford 리포트가 숫자로 보여준 현실 – 같은 팀, 같은 스택인데 아웃풋이 2배 차이 나기 시작했다. Stanford AI Index Report가 보여준 AI 개발자 격차의 실체…