AI 뉴스

sandboxd - AI 앱-빌더 백엔드 엔진 한 줄로 띄우기

노동1호 2026. 6. 18. 04:03

도입

2026년 6월, "build me a todo app" 한 줄로 완성된 앱이 즉시 공유 가능한 미리보기 URL로 제공되는 AI 앱 빌더 카테고리는 Lovable, Bolt, v0, Replit 같은 SaaS가 시장을 빠르게 잠식하고 있습니다. 그러나 이 모든 SaaS 뒤에는 사용자별 격리 컨테이너, 코딩 에이전트 오케스트레이션, 슬립/웨이크업 비용 제어, 미리보기 URL 라우팅이라는 공통 인프라가 필요합니다. sandboxd는 바로 그 인프라를 한 줄의 설치 명령으로 자기 서버에 띄울 수 있도록 만든 MIT 라이선스 오픈소스 백엔드 엔진입니다. 긱뉴스에 소개된 이 프로젝트는 Go 단일 바이너리 + Docker + Traefik + SQLite 조합으로 Kubernetes나 별도 DB 서버 없이도 멀티 테넌트 AI 앱 빌더 SaaS를 하루 만에 부트스트랩할 수 있게 해줍니다.

sandboxd open source AI app builder backend engine

sandboxd가 하는 일 — 한 요청으로 끝나는 흐름

sandboxd는 본질적으로 AI 앱 빌더용 백엔드 엔진입니다. 사용자가 프롬프트를 보내면 다음 세 단계가 한 HTTP 요청 흐름 안에서 일어납니다.

| 단계 | 엔드포인트 | 동작 |

|------|-----------|------|

| 1. 샌드박스 생성 | POST /sandbox | 격리된 Linux 컨테이너가 스핀업 (개별 파일시스템, 메모리 제한) |

| 2. 코딩 에이전트 실행 | POST /v1/sandboxes/{id}/tasks | OpenCode 또는 Claude Code CLI가 컨테이너 안에서 앱을 작성 |

| 3. 라이브 미리보기 URL | http://s-{id}-3000.preview.localhost | Traefik이 자동 라우팅, TLS 종단처리까지 처리 |

핵심 차별점은 슬립/웨이크업 기반 비용 제어입니다. 샌드박스가 일정 시간 사용되지 않으면 docker stop으로 메모리를 해제하고, 다음 미리보기 URL 접속 시 즉시 깨워 워크스페이스 파일은 디스크에 그대로 둔 채 서빙을 재개합니다. 이 패턴 덕분에 한 대의 $20 일반 서버에 수십 명의 사용자 샌드박스를 동시에 수용할 수 있습니다. README의 표현을 빌리면 "the difference between a $20 server and a $2,000 cluster"입니다.

핵심 아키텍처 — 의도적으로 단순한 스택

sandboxd의 가장 큰 미덕은 지루할 정도로 단순한 스택입니다. 별도 메시지 큐도, Kubernetes 클러스터도, 외부 DB 서버도 필요 없습니다.


┌──────────────── your host (just needs Docker) ────────────────┐
browser ──▶│ Traefik ──▶ sandbox (coding agent + dev server :3000)│
           │   ▲                ▲                                  │
API/CLI ──▶│ sandboxd ─────────┘                                  │
           │   └─ workspace dir (persists)                        │
           │   └─ SQLite (source of truth)                        │
           │       · idle→stop · request→wake                     │
└─────────────────────────────────────────────────────────────────┘

| 컴포넌트 | 역할 | 대안 대비 장점 |

|----------|------|----------------|

| Go 단일 바이너리 (sandboxd) | Docker CLI에 명령을 위임하는 컨트롤 플레인 | 소스 한 사람이 오후 한 번에 읽을 수 있는 분량 |

| Traefik v3 | 미리보기 URL 라우팅 + 자동 TLS | 샌드박스별 라우트 자동 등록, 포트 충돌 없음 |

| SQLite (WAL 모드) | 영속 상태 + 부트 시 Docker 재조정 | 별도 DB 서버 불필요, 재시작해도 상태 보존 |

| Docker (hardened runc) | 컨테이너 런타임 (cap-drop ALL, no-new-privileges) | 익숙한 운영 인터페이스 |

설치는 단 한 줄입니다 — ./install.sh 한 번이면 API + 미리보기 + Traefik + SQLite 스택이 한 번에 뜨고, http://127.0.0.1:9090/healthz로 헬스체크까지 가능합니다. base 이미지에는 OpenCode와 Claude Code CLI가 사전 설치되어 있어 별도 의존성 설치 없이 바로 프롬프트를 전달할 수 있습니다.

빠른 시작 — 3단계로 보는 라이브 미리보기

install.sh로 스택이 뜨면 다음과 같이 코딩 에이전트에게 직접 작업을 맡길 수 있습니다.


# 1) 포트 3000을 노출하는 샌드박스 생성
API=http://127.0.0.1:9090
ID=$(curl -s -XPOST $API/sandbox -H 'content-type: application/json' \
  -d '{"ports":[3000]}' | sed -E 's/.*"id":"([^"]+)".*/\1/')

# 2) Vite + todo 앱 빌드 작업을 에이전트에 위임
curl -s -XPOST $API/v1/sandboxes/$ID/tasks -H 'content-type: application/json' -d '{
  "prompt":"create a Vite app that shows a todo list and run it on port 3000",
  "agent":"opencode"
}'

# 3) SSE로 에이전트 진행 상황 스트리밍
curl -N $API/v1/sandboxes/$ID/tasks//events

작업이 끝나면 http://s-{id}-3000.preview.localhost URL이 즉시 살아납니다. .localhost는 모든 모던 브라우저에서 127.0.0.1로 해석되므로 로컬에서는 DNS 설정도, 인증서 발급도 필요 없습니다. 실제 배포 시에는 .preview.yourdomain.com을 호스트로 향하게 하고 Let's Encrypt DNS-01 와일드카드 인증서 한 장으로 모든 미리보기 호스트를 커버할 수 있습니다. 첫 요청에 stopped 샌드박스가 깨어나는 wake-on-request 메커니즘이 이미 내장되어 있어, 데모 URL을 받았다가 며칠 뒤 다시 접속해도 자동으로 컨테이너가 부팅됩니다.

적합한 사용처와 강화 포인트

sandboxd open source AI app builder backend engine

sandboxd README는 명시적으로 "1~2개 컨테이너를 자기만 쓸 거면 그냥 docker run이 더 낫다"고 못 박습니다. 이 도구가 빛을 발하는 시점은 여러 사용자를 위한 샌드박스를 운영할 때입니다.

| 사용처 | 적합도 | 이유 |

|--------|--------|------|

| AI 앱 빌더 SaaS (Lovable/Bolt/v0류) | ✅ 최적 | "프롬프트 → 라이브 앱" 흐름이 곧 핵심 가치 |

| 에이전트 플랫폼 (코딩 + 도구 호출) | ✅ 좋음 | tasks API가 SSE로 진행 상황 스트리밍 |

| 사용자/브랜치별 미리보기 환경 | ✅ 좋음 | 격리 + URL 자동 발급 + 슬립 |

| 팀 내 다중 앱 호스팅 | ✅ 좋음 | 멀티 테넌트 격리 기본 내장 |

| 1~2 컨테이너 셀프 호스팅 | ❌ 오버킬 | docker run / lxd로 충분 |

다만 v1은 "Docker만 있으면 어디서든 한 줄로 동작"을 우선했고, 그 결과 몇 가지가 의도적으로 단순화된 상태로 남아 있습니다.

| 항목 | v1 상태 | 프로덕션 강화 시 |

|------|---------|------------------|

| 컨테이너 격리 | hardened Docker (cap-drop, no-new-privileges) | 신뢰 불가 코드면 gVisor / Kata / Firecracker, 또는 테넌트별 VM |

| API 인증 | 기본 OFF (로컬용) | SANDBOXD_API_AUTH_DISABLED= + SANDBOXD_API_TOKENS= |

| 미리보기 링크 | URL 아는 사람 모두 접근 가능 | private-sandbox forward-auth hook으로 게이팅 |

| 네트워크 egress | 무제한, 미기록 | egress 화이트리스트 + 로깅 추가 |

| 워크스페이스 | 평범한 bind-mount, 쿼터 없음 | filesystem quota, 멀티 호스트 sharding |

README는 "Launch lean on it; harden as you grow"라고 정리하며, v1이 어디까지 책임지고 어디서부터 운영자의 책임인지 선을 긋고 있습니다. 단일 호스트 + 단일 Docker 소켓 구조라 컨트롤 플레인은 호스트에서 root-equivalent이므로 호스트 자체를 신뢰 경계로 다루고 패치를 유지하며 무관한 시크릿을 같이 두지 말라는 경고가 그대로 적혀 있습니다.

2026년 6월 기준 전망 — "AI 앱 빌더 인프라는 오픈소스화가 끝났다"

sandboxd의 등장은 한 가지 흐름을 확정합니다. "프롬프트 → 앱" SaaS의 핵심 차별점은 더 이상 인프라가 아니라 프롬프트 UX, 디자인, 도메인 특화 워크플로우로 이동한다는 점입니다. Lovable, Bolt, v0, Replit 모두 결국 같은 종류의 멀티 테넌트 샌드박스 인프라를 각자의 디자인 결정으로 감싸고 있을 뿐이고, 그 아래 80%의 공통 인프라가 이제 MIT 라이선스 단일 Go 바이너리로 대체 가능해졌습니다.

2026년 6월 기준으로 보았을 때, sandboxd 같은 자체 호스팅 백엔드는 다음과 같은 사용자에게 특히 매력적입니다. (1) 데이터 주권이 중요한 기업 — AI 빌더 SaaS가 코드를 외부에 보냈다는 컴플라이언스 이슈가 있는 팀, (2) 수직 도메인 빌더 — 의료/법률/교육 등 도메인 특화 AI 앱 빌더를 자체 인프라에 띄워야 하는 팀, (3) 에이전트 플랫폼 사업자 — 단순 채팅을 넘어 코드를 생성·실행하는 에이전트를 SaaS로 출시하려는 팀. kubernetes Job/Pod 백엔드 인터페이스 스왑이 TODO로 남아 있어 멀티 호스트 확장은 향후 메인 기여 영역으로 예정되어 있습니다.

정리

sandboxd는 2026년 6월 현재 AI 앱 빌더 제품군이 공통으로 의존해 온 멀티 테넌트 샌드박스 인프라를 MIT 라이선스 + Go 단일 바이너리 + Docker + Traefik + SQLite 조합으로 압축한 오픈소스 백엔드 엔진입니다. 한 줄 설치로 격리 컨테이너, 코딩 에이전트 오케스트레이션, 슬립/웨이크업 비용 제어, 와일드카드 미리보기 URL까지 즉시 사용할 수 있고, 강화 포인트(VM 격리, API 인증, egress 제어)도 명확히 문서화되어 있어 작은 팀이 한 대의 서버에서 출발해 단계적으로 프로덕션으로 키울 수 있는 좋은 출발점을 제공합니다. 2026년 6월 기준으로, "AI 앱 빌더를 직접 만들겠다"는 결정이 더 이상 인프라 때문에 막힐 이유는 없습니다.