# Stateless 인프라 아키텍처 리포트

> 2026-03-01 세션 대화에서 도출된 아키텍처 정리

---

## 1. 핵심 발견: 3계층 분리 구조

```
[폰 (Termux + Claude Code)]     ← 두뇌 + 외주 발주
  → LLM이 판단/생성 (텍스트, 코드, 프롬프트)
  → 외부 API가 GPU 연산 (이미지, 음악, 영상 생성)
  → 결과물 → GitHub / YouTube로 올림
  → URL만 남김

[클라우드 (GitHub + YouTube)]   ← CDN (저장소)
  → 코드, 영상, 이미지, 오디오 전부 URL로 접근
  → 로컬 저장 0이 목표

[집 PC (Dell XPS, GPU 없음)]    ← 조립 공장
  → 다운로드 + 조립 (Python, FFmpeg, Gradle)
  → 로컬에서만 가능한 것만 처리
  → 결과물 → 다시 GitHub / YouTube로 올림
```

---

## 2. PC가 구조적으로 필요한 이유

AI가 아무리 발전해도 **컴퓨팅이 어디서 실행되느냐**는 안 바뀐다.

| 구조적 한계 | 해당 작업 | GitHub Actions로 불가능한 이유 |
|-------------|-----------|-------------------------------|
| **연산량** | APK 빌드 (Gradle) | 시간/용량 초과 |
| **용량** | 음악 렌더링 (SoundFont + FFmpeg) | 큰 바이너리 |
| **용량** | D:\tmp 작업 디렉토리 | 수십 GB 임시 파일 |
| **하드웨어 접근** | OBS 녹화 / CCTV | GUI + 물리 디스플레이 필요 |
| **하드웨어 접근** | RustDesk 원격 | 물리 디스플레이 필요 |

> 클라우드에 GPU + 무제한 용량을 달면 해결되지만, 그건 **돈 문제**지 기술 문제가 아니다.

---

## 3. GPU 없는 PC가 성립하는 이유

GPU 연산은 **외부 서비스가 전부 처리**하고, PC는 결과물 조립만 한다.

```
GPU 연산 (AI 생성) → Claude API, Suno, Grok 등 외부 서비스
                      ↓
              결과물 다운로드 (MIDI, 오디오, 이미지, 6초 영상)
                      ↓
PC 역할 → Python으로 조립만 (FFmpeg 합성, 파일 변환, 배치 처리)
```

| PC 작업 | GPU 필요 여부 | 실제 연산 |
|---------|---------------|-----------|
| MIDI → WAV 렌더링 (SoundFont) | X | CPU + 디스크 I/O |
| FFmpeg 오디오/영상 합성 | X | CPU |
| APK 빌드 (Gradle) | X | CPU + 메모리 |
| OBS 녹화 | X | CPU 인코딩 |
| Python 배치 스크립트 | X | CPU |

---

## 4. 무료 CDN 전략: YouTube를 저장소로 쓴다

### 소재 파이프라인

```
이미지 → Grok 6초 영상 변환 → YouTube 업로드 (숏츠)
                                    ↓
                              YouTube URL 획득
                                    ↓
                         PWA 칠판에 URL embed → 방송 형태 구성
                                    ↓
                            칠판 방송 녹화 → YouTube 업로드 (VOD)
```

### 모든 단계가 정당한 콘텐츠인 이유

| 단계 | YouTube 콘텐츠 유형 | 시청 가능 여부 |
|------|---------------------|----------------|
| 6초 영상 소재 | Shorts | O — 사람들이 본다 |
| 칠판 방송 | 라이브/VOD | O — 사람들이 본다 |
| 개발 CCTV | 라이브/VOD | O — 사람들이 본다 |
| 클래식 음악 | 음악 콘텐츠 | O — 사람들이 본다 |

> **소재집이 문제가 되려면 "사람이 볼 수 없는 쓰레기를 저장 목적으로 올렸다"여야 한다.**
> 전부 시청 가능한 콘텐츠이므로 YouTube 정책 위반 아님.
> 정책이 바뀌어도 "시청 가능한 영상을 제재" 하면 YouTube 자체가 성립 안 됨.

### 저장소별 역할

| 소재 종류 | 저장소 | 비용 | 접근 방식 |
|-----------|--------|------|-----------|
| 코드 | GitHub | $4/월 (Pro) | git clone / URL |
| 영상/소재 | YouTube | 무료 무제한 | URL (embed) |
| 이미지 | GitHub repo | $4/월에 포함 | URL |
| 오디오 | YouTube (영상화) | 무료 | URL |
| 문서 | GitHub | $4/월에 포함 | URL |

---

## 5. 비용 구조

```
GitHub Pro:  $4/월 (₩5,200)
YouTube:     $0
Claude API:  사용량 기반 (별도)
──────────────────────────
인프라 총비용: $4/월
```

---

## 6. 평가: 써먹을 만한가?

### 확실히 쓸 수 있는 것 (검증됨)

| 아이디어 | 상태 | 근거 |
|----------|------|------|
| PC = GPU 없는 조립 공장 | **실행 중** | parksy-audio가 이미 이 구조로 돌아간다 |
| GitHub = 코드 저장소 | **실행 중** | 20개 레포 운영 중 |
| YouTube = 무료 영상 CDN | **실행 중** | 채널 8개 운영 중 |
| 폰(Termux)에서 LLM 개발 | **실행 중** | 이 대화 자체가 증거 |

### 실행 가능하지만 아직 미구현

| 아이디어 | 필요 작업 | 난이도 |
|----------|-----------|--------|
| 이미지 → 6초 영상 → YouTube 소재집 | Grok 영상 생성 + 업로드 자동화 | 중 |
| PWA 칠판에 YouTube URL embed | parksy-image PWA에 영상 플레이어 추가 | 중 |
| 칠판 방송 → 녹화 → YouTube | OBS 자동화 (PC CCTV 확장) | 하 (기존 구조 재활용) |

### 리스크

| 리스크 | 확률 | 대응 |
|--------|------|------|
| YouTube 정책 변경 (업로드 제한) | 낮음 | 콘텐츠 자체가 시청 가능하므로 명분 없음 |
| GitHub LFS 용량 초과 | 중간 | 바이너리는 YouTube로 우회, 코드만 GitHub |
| Grok 영상 생성 API 유료화 | 중간 | 다른 무료 도구로 대체 가능 |

---

## 7. 한 줄 요약

> **$4/월로 폰(두뇌) + YouTube(CDN) + PC(공장)를 돌리는 stateless 아키텍처.**
> **서버리스 설계 원칙과 동일하며, 이미 절반은 실행 중이다.**

---

*Generated: 2026-03-01*
*Source: Claude Code 세션 대화 (stt-workflow.md 커밋 이후)*
