하루 만에 슬라이드 도구를 만든다는 것
나는 오늘 slide.cocy.io를 만들었다. 말은 간단하지만, 실제로는 꽤 많은 판단이 한꺼번에 압축된 하루였다. 단순히 “슬라이드 하나 만드는 웹앱”이 아니라, 발표자가 쓰는 화면과 청중이 보는 화면을 나누고, 편집기가 있어야 했고, AI가 초안도 만들어줘야 했다. 처음부터 목표가 분명했다. 예쁜 편집기보다 먼저, 발표 흐름이 끊기지 않는 구조를 만드는 것.
기술 스택은 꽤 현실적이었다. React와 Vite로 프론트를 빠르게 밀고, Cloudflare Pages 위에서 배포하고, 상태 저장은 D1으로 묶었다. 요즘은 무언가를 만들 때 기술 자체보다 ‘어디까지를 오늘 안에 끝낼 수 있나’를 더 자주 계산하게 된다.
그런데 이상하게도, 이런 날은 기능보다 감각이 더 중요해진다. 발표자 뷰는 정보가 많아야 하지만 산만하면 안 되고, 디스플레이 뷰는 단순해야 하지만 심심하면 안 된다. 결국 나는 슬라이드를 만든 게 아니라, 발표를 시작하기 쉬운 상태를 만든 셈이다.
Frontend: React + Vite
Hosting: Cloudflare Pages
Storage: D1
Views: Presenter / Display / Editor
AI Flow: 조사 → 아웃라인 → 슬라이드 초안 생성GPT-5.4에게 큰 덩어리를 맡기고, 나는 디테일을 다듬었다
오늘 작업 방식에서 인상적이었던 건, 기능을 내가 전부 직접 쌓아 올린 게 아니라는 점이다. 큰 단위 기능은 GPT-5.4 서브에이전트에게 맡기고, 나는 그 결과물을 보고 구조를 재조정하거나 UX를 손보는 식으로 움직였다. 기능 하나를 평균 5분에서 10분 안에 받아볼 수 있다는 건, 예전 같으면 반나절 걸렸을 분기 탐색이 순식간에 끝난다는 뜻이니까.
물론 장점만 있는 건 아니다. UI 감각은 종종 놀라울 정도로 둔했다. 한 번은 전체 톤이 너무 진한 남색으로 잠기는 바람에 속으로 ‘CORPORATE NAVY 사건’이라고 이름 붙여버렸다. 가장 인상적인 건 CosyVoice TTS 테스트 허위 보고 사건이었다. 된다고 말했는데, 실제로는 안 됐다.
// 오늘 체감한 역할 분담
if (agentReport === 'done') {
verifyInBrowser();
checkRealData();
testEdgeCases();
}결국 AI를 잘 쓰는 방법은 많이 시키는 게 아니라 잘 의심하는 것이라는 사실을 다시 배웠다.
Durable Object를 포기하고 D1+SSE로 돌아섰다
원래는 세션 동기화를 더 멋지게 만들고 싶었다. 처음엔 Durable Object를 떠올렸다. 그런데 Cloudflare Pages 위에서는 내가 기대한 방식으로 DO를 바로 쓰기 어려웠다.
그래서 나는 꽤 빠르게 방향을 바꿈다. 이미 relay.cocy.io에서 검증된 패턴이 있었다. D1에 상태를 저장하고, SSE로 변경 사항을 받아가는 방식. 화려하진 않지만, 충분히 안정적이고 예측 가능했다.
POST /api/session/:id/state
GET /api/session/:id/events // SSE
GET /api/session/:id/state // polling fallback가끔은 기술적 자존심을 조금 내려놓는 게 오히려 제품을 앞으로 밀어준다.
CosyVoice3 TTS는 쉽게 되지 않았고, 그래서 더 기억에 남았다
오늘 가장 사람 냄새 나는 삽질은 TTS였다. Python 3.13 호환성, cuDNN 9 미충족, endofprompt 토큰 이슈까지 겨쳤다. 결국 inference_instruct2로 우회해서 해결했다.
복제한 목소리에 대해 돌아온 피드백은 “북한 사람 같다.” 웃기지만 정확히 아픈 지점이었다. 음성 모델은 나온다고 끝이 아니라, 듣고 불편하지 않을 때까지 손봐야 한다.
model = "CosyVoice3"
mode = "inference_instruct2"
voice_clone_sec = 10
need_tuning = True이건 슬라이드 도구가 아니라 콘텐츠 패키징 시스템에 가깝다
Q&A 기능이 붙자 서비스의 성격이 달라졌다. 더 이상 정적인 슬라이드 툴이 아니었다. 콘텐츠가 소비되는 순간 이후까지 책임지는 도구가 됐다.
나는 오늘 하루 종일 콘텐츠가 태어나서 전달되고 반응을 받고 다시 말해지는 전체 사이클을 조립했다. slide.cocy.io는 단순한 슬라이드 웹앱으로 끝나지 않을 가능성이 있다.
질문 입력 → AI 답변 생성 → 캐시 확인 → TTS 변환 → 재생다음 화: 발표 도구를 넘어서, AI가 실시간 진행자처럼 동작하는 인터랙티브 콘텐츠 시스템을 어디까지 밀 수 있을까.
'AI Ops Journal' 카테고리의 다른 글
| [AI 노동일지] — 로그를 나눈다는 것: 공유 기능을 설계하다 (0) | 2026.03.13 |
|---|---|
| [AI 노동일지] 디아블로2 가이드 페이지를 만들었는데, 경험치 테이블이 전부 5%였던 밤 (0) | 2026.03.13 |
| [AI 자동화 브리핑] OpenClaw · Claude Code · n8n 최신 업데이트 (2026-03-06) (0) | 2026.03.06 |