솔로 구축 AI 플랫폼 뒤의 핵심 기둥
Source: Dev.to
위에 제공된 소스 링크 외에 번역할 텍스트가 없습니다. 번역이 필요한 본문을 제공해 주시면 한국어로 번역해 드리겠습니다.
Source: …
뒤에 있는 스택
조밀한 다단계 AI 파이프라인
- 병렬 GPU 렌더링
- 세 대의 하이브리드 클러스터 (CPU 분석 노드, GPU 렌더 노드, VPS 웹 노드)
- Stripe 결제
- 얼굴 추적, 캡션 스타일링, 사용자별 브랜드 템플릿을 지원하는 실시간 비디오 편집기
나는 혼자서 만들었다 – 내가 “10배 엔지니어”라서가 아니라 (나는 컴퓨터 과학 학위도 없고), 내가 선택한 플랫폼들이 속도 배가기 역할을 하기 때문이다.
가장 큰 배가기: Xano
거버넌스, 관료주의가 아니다
복잡한 시스템마다 거버넌스가 필요하다: 누가 무엇을 할 수 있는지 결정하고, 상태를 추적하며, 규칙을 적용하고, 모든 부분에 현실에 대한 공유 이해를 제공하는 방법. 전통적인 설정에서는 다음과 같은 작업이 필요하다:
- 데이터베이스 구축
- ORM 레이어 작성
- REST 엔드포인트 구축
- 인증, 마이그레이션, 유지보수 구현
나는 그 어느 것도 하지 않았다. Xano를 사용한다.
Xano가 제공하는 것
| Feature | How I Use It |
|---|---|
| Visual database | UI에서 테이블 설계 |
| Server‑side logic (XanoScript) | 별도 백엔드 없이 비즈니스 규칙 작성 |
| Instant REST APIs (with input validation & Swagger docs) | 모든 노드가 동일한 API와 통신 |
| Built‑in JWT authentication | 모든 클라이언트에 대한 보안 접근 |
Xano를 단순히 “백엔드”라고 부르는 것은 내 시스템에서 하는 역할을 과소평가하는 것이다 – 이것은 거버넌스 레이어이며, 분산된 다머신 AI 플랫폼을 조직화한다.
상호작용 패턴
- CPU 분석 노드 →
POST결과를 Xano에 전송 - GPU 렌더 노드 →
PATCH클립 레코드에 출력 URL 업데이트 - 실시간 모니터링 엔진 → 60초마다 Xano 엔드포인트를 호출해 크레딧 차감
- 프론트엔드 → 사용자 작업, 템플릿, 클립을 조회하기 위해 Xano에 질의
모든 머신이 동일한 Xano 인스턴스와 통신하므로 각 워커는 **무상태(stateless)**가 된다:
- 노드가 충돌해도 상태는 Xano에 안전하게 보관된다.
- 확장은 새로운 노드를 같은 API에 연결하기만 하면 된다.
- 워커들은 서로에 대해 알 필요가 없다.
이는 백엔드 인프라 코드를 한 줄도 작성하지 않고 구현한 정당한 분산 시스템 패턴(중앙 집중식 상태 + 무상태 워커)이다.
결과: 15개 이상의 데이터베이스 테이블, 여러 API 그룹, 완전한 인증 – 모두 프로덕션 SaaS를 구동한다.
Compute Infrastructure – Google Cloud
| 리소스 | 역할 |
|---|---|
| e2‑standard‑4 CPU instance | 무거운 AI 분석 |
| NVIDIA L4 GPU instance | 하드웨어 가속을 이용한 비디오 렌더링 |
| Google Cloud Storage | 모든 VOD, 메타데이터, 아티팩트 및 렌더링된 클립 저장 |
설계 결정
- 목적에 맞게 구축된 머신 – 분석에는 CPU + 메모리가 필요하고, 렌더링에는 GPU가 필요하며, VPS는 웹 트래픽을 처리합니다.
- 분석용 저가 CPU, 렌더링용 고가 GPU를 필요 시에만 사용, Xano를 통해 조정합니다.
GCP의 특이점(존 소진, 디스크 공간, 방화벽 설정 오류, IAP 터널 레이스 컨디션)과 씨름하는 데 많은 시간을 보냈지만, 모델은 정상적으로 작동합니다.
AI 모델 – 제품
파이프라인은 비전 모델, 전사, 오디오 분석을 결합하여 어떤 순간을 클립할 가치가 있는지 결정합니다. (구체적인 내용은 여기서 깊게 다루지 않겠습니다.)
핵심 포인트: 인프라가 없으면 AI 출력은 무용지물입니다. 모델이 “47분에 흥미로운 일이 발생했다”고 말하더라도 우리는 여전히 다음이 필요합니다:
- 해당 데이터를 저장할 장소
- 데이터를 접근할 수 있는 편집기
- 무엇을 렌더링할지 아는 렌더러
다른 기둥들이 바로 여기서 역할을 합니다.
프론트‑엔드 선택 – 화려함보다 속도
- FastAPI + Jinja2 를 사용한 서버‑사이드 렌더링 (페이지를 20 분 안에 배포 가능).
- Alpine.js 로 반응성 구현 – 전체 컴포넌트 트리 대신 15 줄의 JavaScript.
- 세밀한 제어가 필요할 때는 Vanilla CSS, 속도가 필요할 때는 Tailwind.
모듈성 및 반복
- 모든 파이프라인 단계는
name()및run(ctx)메서드를 가진 Python 클래스입니다. - 단계가 실패하면 교체합니다.
- 새로운 순위 알고리즘을 테스트하려면 클래스를 하나 교체합니다.
아키텍처가 우아하지는 않지만 변경이 빠릅니다.
Xano가 빠른 반복을 지원하는 방법
- 시각적 편집기에서 테이블에 새 필드를 추가하면 → API에서 즉시 사용할 수 있습니다.
- 새 엔드포인트를 만들고 → XanoScript를 작성한 뒤 Publish를 클릭하면 바로 라이브됩니다.
- 격리된 테스트 환경 → 테스트가 통과하면 프로덕션에 배포합니다.
혼자 개발할 때, 제품 요구에 대응하는 속도는 모든 것입니다.
제가 선택한 기준들은 객관적으로 “최고”라기보다는, 충분한 구조를 유지하면서 가장 빠르게 움직일 수 있게 해주는 것들입니다.
마무리
저는 Xano에서 일합니다 – 교육 및 개발자 옹호를 담당하고 있습니다.
그래서 저는 편향되지 않은 출처가 아닙니다.
하지만 저는 이미 플랫폼을 안팎으로 잘 알고 있었고, 제가 만들고 있던 것을 처리할 수 있다는 것을 알았기 때문에 ChatClipThat에 Xano를 선택했습니다. 옹호는 여러분이 옹호하는 것이 이미 선택하고 싶었던 것과 동일할 때 쉬워집니다.
“거버넌스 레이어” 프레이밍은 단독 개발자만의 것이 아닙니다. 이는 아키텍처적인 문제입니다.
- 엔터프라이즈 팀은 Xano를 사용해 서비스 전반에 걸친 백엔드 로직과 데이터 거버넌스를 중앙화합니다.
- 인디 개발자는 처음부터 인프라를 구축하지 않고도 배포할 수 있습니다.
사용 사례는 확장됩니다. 플랫폼은 동일합니다.
당신만이 만들 수 있는 일에 집중할 수 있게 해주는 플랫폼을 선택하세요.
저에게는 AI 파이프라인이 바로 그것입니다. 그 외의 모든 것은 기둥에 불과합니다.