# STT 무키보드 개발 워크플로우

> 작성일: 2026-03-01
> 상태: **실사용 중**
> 작성자: 박씨 (비개발자, 1인 콘텐츠 생산)

---

## 이게 뭐냐

키보드를 쓰지 않고 폰 음성 입력(STT)으로 Claude Code에 지시해서
음악, 이미지, 앱을 만드는 워크플로우다.

직접 코드를 치지 않는다. 뭘 만들지 말로 설명하면 Claude가 코드를 쓰고 실행한다.

---

## 구성

| 장비 | 용도 | 비용 |
|------|------|------|
| 폰 (Android) | STT 입력 + Termux Claude Code | 이미 있음 |
| Dell XPS 13 9370 (16GB) | 렌더링/빌드 실행 | 이미 있음 |
| WD My Passport 2TB (외장 HDD) | 작업 데이터 전체 | 이미 있음 |
| 태블릿 | RustDesk 원격 접속 | 이미 있음 |
| Claude Pro ($20/월) | AI 모델 | 유일한 비용 |

인프라 추가 비용: **0원**

---

## 작업 흐름

### 입력

```
[폰]
음성 → STT 변환 → Termux Claude Code에 텍스트 입력

예시:
  "parksy-audio에서 차이콥스키 22곡 전부 렌더링해.
   SF2는 Steinway Grande로. 출력은 D:\tmp에."
```

말하면 끝이다. Claude가 코드 작성 → 실행 → 에러 처리 → 결과 push까지 한다.

### 실행

```
[PC — 무인]
Claude Code가 받은 지시 실행
  → FluidSynth로 MIDI → WAV 변환
  → FFmpeg로 후처리
  → 22곡 배치 ~2시간
  → 완료되면 git push

나는 이 동안 밖에 나가있다.
```

### 확인

```
[폰]
git pull → 결과 확인
또는
RustDesk로 PC 화면 원격 확인
```

---

## 실제 생산한 것

| 프로젝트 | 결과물 | 도구 |
|----------|--------|------|
| parksy-audio | 클래식 음원 22곡 (Piano avg 96.4점, Orchestral avg 99.9점) | FluidSynth + FFmpeg |
| parksy-image | PSE 한글 폰트 시스템 (86 glyphs, 33/33 tests) | Python + OpenCV |
| dtslib-apk-lab | Flutter 앱 5개 (ChronoCall 등) | Flutter + Dart |

전부 이 워크플로우로 만들었다. 키보드로 코드를 직접 친 적 없다.

---

## 왜 이게 되는가

```
2024년까지:
  개발 = 코드를 "타이핑"하는 행위
  → 키보드 필수
  → 모니터 필수
  → 책상 필수

2025년부터:
  개발 = 코드를 "시키는" 행위 (Claude Code)
  → 의도만 전달하면 됨
  → 의도 전달은 말이 글보다 빠름
  → 키보드가 필요 없어짐
```

Claude Code가 코드를 100% 작성하는 순간,
입력 수단은 "코드를 정확히 치는 도구"에서 "의도를 빠르게 전달하는 도구"로 바뀐다.
의도 전달에는 음성이 키보드보다 2~3배 빠르다.

---

## 2레인 원격 체제

하나의 Claude Code 세션은 한 번에 하나만 할 수 있다.
그래서 두 레인으로 분리한다.

### 레인 1: CLI (화면 안 봐도 되는 작업)

```
폰 STT → Termux Claude Code → git push
  → PC Claude Code가 pull → 무인 실행
  → 결과 git push → 폰에서 확인

용도: 렌더링, 배치 처리, 스크립트 실행
```

### 레인 2: GUI (화면 봐야 하는 작업)

```
태블릿 RustDesk → PC 화면 직접 조작

용도: APK 에뮬레이터, 브라우저 테스트, UI 확인
```

### 왜 2레인이 상한선인가

3레인 이상은 인간이 컨텍스트 스위칭을 못 한다.
도구의 한계가 아니라 관리하는 사람의 한계다.
1인이면 최대 2개를 동시에 신경 쓰는 게 현실적 상한선이다.

---

## 모델 사용 전략

| 단계 | 모델 | 역할 |
|------|------|------|
| 설계 | Opus | 아키텍처, 파이프라인 설계, 복잡한 판단 |
| 운영 | Sonnet / Haiku | 만들어진 스크립트 실행, 반복 배치 |

```
Opus가 할 일:    렌더링 파이프라인 설계 + 스크립트 작성 (1회)
Sonnet이 할 일:  "이 스크립트로 22곡 돌려" (반복)
```

비싼 모델로 구조를 만들고, 싼 모델로 반복 실행한다.

---

## 한계 — 이 방법이 안 되는 경우

| 상황 | 왜 안 되는가 |
|------|-------------|
| GPU 필요한 AI 추론 | Dell XPS에 GPU 없음 |
| 대용량 영상 편집 | 외장 HDD I/O 병목 |
| 실시간 응답 필요한 서비스 | 무인 배치 전제이므로 불가 |
| 정밀한 코드 리뷰 | 폰 화면으로는 한계 |
| PC 고장 시 | 렌더링/빌드 전부 멈춤 |
| 외장 HDD 물리 파손 | 작업 데이터 유실 (GitHub 백업 외) |

이 한계가 치명적으로 느껴지는 날이 오면, 그때 SSD(10만원)부터 산다.
지금은 안 온다.

---

## 전제 조건 — 아무나 되는 건 아니다

이 워크플로우가 성립하는 조건:

1. **1인 작업** — 협업이 없어서 동기화/코드리뷰 오버헤드가 0
2. **배치 가능한 작업** — 렌더링, 빌드 등 돌려놓고 나갈 수 있는 작업
3. **Claude Pro 구독** — AI가 코드를 100% 쓰는 전제
4. **결과물이 코드 자체가 아님** — 음악, 이미지, 앱이 최종 산출물

협업 팀이면 이 방법 쓸 수 없다. 실시간 서비스 운영이면 안 된다.
**1인 콘텐츠 생산자 + 무인 배치 가능한 작업**일 때만 성립한다.

---

## 이 방법을 발견한 과정

누가 가르쳐준 게 아니다.

```
시작: 비개발자가 Claude Code를 쓰기 시작함
  → 키보드 타이핑이 느림 (한글/영어 전환, 오타)
  → "그냥 말로 하면 안 되나?"
  → Termux에서 STT 입력 시도
  → 됨
  → 코드를 안 쳐도 결과물이 나옴
  → "그러면 밖에서도 되겠는데?"
  → RustDesk + Termux 조합
  → 됨
  → 지금의 체제
```

방법론을 먼저 설계한 게 아니라, 불편함을 하나씩 해결하다 보니 이렇게 됐다.

---

*이 문서는 2026-03-01 기준 실제 사용 중인 워크플로우를 기록한 것이다.*
*이론이 아니라 실행 결과다.*
*Built with: Claude Code (Claude Opus 4.6)*
