← munki notes 건축기술 × AI
AI & 바이브코딩 기업별 AI 플랫폼 해부 시리즈 9 2026-05-30

실패해도 이어지는 실행 —
Temporal로 배우는 Durable Execution

긴 AI 작업이 중간에 무너지는 이유는 실행 상태가 없어서다. Temporal의 Durable Execution 개념으로 실패·멈춤·재개를 견디는 실행 구조를 배우고, 지금 당장 적용할 수 있는 RunLog + TaskState MVP를 설계한다.

Temporal Durable Execution RunLog TaskState 실행 구조
Key Insight

먼저 RunLog와 TaskState를 만들자. 지금 당장 Temporal부터 설치할 필요는 없다.

일반 스크립트 vs Durable Execution
일반 스크립트
  • 중간 결과가 작업 상태가 안 됨
  • 실패 시 처음부터 다시 시작
  • 승인 지점 없음
  • 실행 이력 추적 불가
Durable Execution
  • 각 단계가 상태로 저장됨
  • 실패 시 마지막 지점부터 재개
  • 사람 승인 게이트 삽입 가능
  • 전체 실행 이력 재생 가능
Temporal 핵심 개념 4요소
🔄
Workflow
전체 흐름을 정의하는 코드. 재실행해도 같은 결과를 보장
⚙️
Activity
실제 작업 단위. 외부 API 호출, DB 쓰기 등 부작용 있는 작업
↩️
Retry Policy
실패 시 자동 재시도. 횟수·간격·백오프 설정 가능
⏱️
Timeout
무한 대기 방지. Schedule-to-Start / Start-to-Close / Heartbeat
LangGraph vs Temporal — 역할 비교
LangGraph
  • 에이전트 흐름 오케스트레이션
  • 노드 간 상태 전달
  • 조건 분기·루프 정의
  • AI 판단 흐름 제어
Temporal
  • 실제 워크플로우 실행 지속성
  • 실패·재시도·재개 보장
  • 장기 실행 작업 관리
  • 사람 승인 대기 지원

긴 AI 작업이 무너지는 이유

AI 에이전트가 외부 API를 호출하고, 문서를 요약하고, 결과를 저장하는 긴 작업을 실행할 때 문제가 생긴다. 중간에 실패하면 처음부터 다시 시작해야 한다. 30분 걸리는 작업이 27분에 오류가 나면 다시 30분이 필요하다.

더 큰 문제는 실행 상태가 없다는 것이다. 어디까지 했는지, 어떤 결과가 나왔는지, 다음에 무엇을 해야 하는지가 메모리에만 있다가 프로세스가 죽으면 사라진다.

Temporal의 Durable Execution은 이 문제를 구조로 해결한다. 실행 이력을 이벤트 로그로 저장하고, 재시작 시 그 로그를 재생해 마지막 상태부터 이어간다.

Temporal이 필요한 순간

모든 작업에 Temporal이 필요하지는 않다. 다음 조건 중 하나라도 해당되면 도입을 검토한다.

1
작업이 길다
수 분~수 시간 이상 걸리는 AI 작업. 중간 실패 가능성이 높아진다.
2
외부 API 실패 가능성
LLM API, 외부 서비스 호출이 포함된 작업. 일시적 오류에 재시도가 필요하다.
3
사람 승인이 필요하다
중간 결과를 사람이 검토한 후 다음 단계로 이어가야 하는 경우.
4
중간부터 재개가 필요하다
처음부터 다시 실행하면 비용·시간 낭비가 큰 작업.

지금 당장 시작할 수 있는 MVP

Temporal 설치 없이 시작하는 RunLog + TaskState

Temporal은 강력하지만 설치와 운영에 진입 장벽이 있다. 지금 당장은 개념을 내 작업 방식에 적용하는 것이 먼저다. RunLog와 TaskState 두 가지 구조만 만들어도 실행 지속성의 핵심을 얻을 수 있다.

RunLog 필드 설명
task_name작업명
started_at시작 시각
input입력 값
steps_done완료된 단계 목록
completed_at완료 시각
failed_at실패 시각 및 이유
output최종 산출물
next_action다음에 할 일
TaskState 필드 설명
current_status현재 상태 (진행중/완료/실패/보류)
last_run_id마지막 RunLog ID
next_action재개 시 시작할 액션

일반 스크립트는 결과를 만들지만 작업 상태를 보존하지 못한다. RunLog는 내가 어디까지 왔는지를 기억하는 가장 단순한 형태의 Durable Execution이다.