[연재] 연재를 쇼츠로 (1) 62편을 만들고 56편을 갈아엎다
다 만들어놓고, 56편을 버렸습니다
7월 25일 저녁이었어요. out/ 폴더에 mp4 파일이 쉰 몇 개 쌓여 있었습니다. 그날 저녁 6시 9분에 제작 리스트를 열어 보니 오프닝 다섯 편만 빼고 전부 ✅ 표시가 붙어 있었어요. 이제 유튜브에 올리기만 하면 되는 상태였습니다.
그런데 올리기 전에 한 번 쭉 넘겨보다가 손이 멈췄어요. 화면에 아무것도 안 나오고 있었거든요.
정확히 말하면 뭔가는 나오고 있었습니다. 화면 아래쪽 CRT 모니터 칸에 이런 게 떠 있었어요.
제일 무서운 것
AI는 애매한 자리를 지어내서 메꾼다
· 모른다고 말하지 않는다
· 그럴듯해서 티도 안 난다

글자를 예쁘게 깎아서 검은 화면에 얹은 것. 저는 이걸 '요약 카드'라고 불렀습니다. 그리고 쉰 몇 편이 거의 다 이런 식이었어요. 위에서는 카톡 대화가 오가고, 아래 화면에는 그 대화를 요약한 글자판이 떠 있는 구조요.
정보는 다 맞습니다. 틀린 말이 하나도 없어요. 그런데 볼 이유가 없더라고요. 소리를 끄고 봐도 되고, 화면을 안 봐도 자막만 읽으면 되는 영상이었습니다. 저 카드를 보려고 세로 화면을 붙잡고 있을 사람이 있을까를 생각하니 답이 안 나왔어요.
그날 저녁 6시 38분에 대본 파일을 통째로 백업해두고, 56편을 처음부터 다시 만들기로 했습니다. 이 글은 그 두 시간에 대한 이야기예요.

왜 쇼츠였나
그때 홈페이지에 연재 글이 여섯 편 올라가 있었습니다. 왜 만들기로 했나, 하드웨어는 뭘 썼나, 계산기를 만들다 뭘 겪었나, 서버 없이 어디까지 되나, 사진 정리 봇, 그리고 안 쓰게 된 것들. 한 편 한 편이 꽤 길었어요.
문제는 이 글을 읽어줄 사람이 없다는 거였습니다. 도메인을 연결한 게 며칠 전이라 검색 유입이 사실상 0이었거든요. 글이 아무리 있어도 들어오는 문이 없으면 없는 거나 마찬가지죠.
그래서 문을 하나 더 내보기로 했습니다. 긴 글 여섯 편을 쪼개서 짧은 영상 예순 편쯤으로 만들자는 계획이었어요. 쇼츠는 검색이 아니라 피드로 사람이 흘러들어오니까, 색인이 안 붙은 초기에도 시작할 수 있는 통로였습니다.
형식은 이렇게 잡았어요. 화면을 위아래로 나눠서, 위는 카톡 대화창, 아래는 CRT 모니터입니다. 저와 클로드가 주고받는 대화가 위에서 흘러가고, 그 대화가 가리키는 실제 화면이 아래에 뜨는 구조요.

이건 갈아엎은 뒤의 화면입니다. 위에서 "근데 배우자 0개월인데 왜 450만원이야?"라고 물으면, 아래 모니터에 그 버그가 있던 실제 함수가 뜹니다. 이 한 편(3-1)만은 처음부터 이렇게 만들어놨었어요. 그래서 더 뼈아팠습니다. 되는 걸 이미 알고 있었으면서 나머지 쉰여섯 편은 쉬운 길로 갔던 거니까요.
예순 편을 손으로 편집할 수는 없잖아요
영상 편집 프로그램으로 예순 편을 만드는 건 애초에 무리였습니다. 한 편을 30초라 쳐도 자막 넣고 화면 바꾸고 하다 보면 편당 한두 시간은 갈 텐데, 예순 편이면 몇 주짜리 일이에요.
그래서 대본만 쓰면 영상이 나오는 방식으로 만들었습니다. make_scene.py라는 파일 하나가 엔진이고, 편마다 '이 순서로 진행해라'를 적은 목록을 넘기면 그대로 그려서 mp4로 뽑아줍니다.
목록에 들어가는 명령은 이런 것들이에요.
| 명령 | 하는 일 |
|---|---|
say | 카톡 말풍선 하나를 띄운다 (누가 · 무슨 말 · 몇 초) |
type | 상대가 입력 중이라는 점 세 개 |
hold | 그 화면 그대로 몇 초 멈춘다 |
img / shot | 아래 모니터에 실제 스크린샷을 띄운다 |
zoom | 그 스크린샷의 한 부분을 확대해서 짚는다 |
code_set / code_edit | 코드를 띄우고, 한 줄을 타이핑해서 고친다 |
text | 글자 카드를 띄운다 |
여기서 문제가 된 게 맨 아래 text였습니다. 다른 명령은 전부 진짜 재료가 있어야 써요. 스크린샷이 없으면 img를 못 쓰고, 실제 코드가 없으면 code_set을 못 씁니다. 그런데 text는 아무 재료 없이도 써집니다. 제목 한 줄과 항목 몇 줄만 적으면 그럴듯한 화면이 나와요.
만들기 제일 쉬운 게 text였고, 그래서 쉰여섯 편이 거기로 몰렸습니다.
세어보니 이랬어요
갈아엎기 전 대본과 지금 대본을 나란히 놓고, 화면에 뭐가 떴는지를 세어봤습니다.

56편에 요약 카드가 56개. 실제 화면이라고 부를 만한 건 통틀어 세 군데였어요. 그것도 사진 한 장을 고정으로 놓고 부분만 확대한 거라 매번 같은 그림이 나왔습니다. 코드도 세 군데 있긴 했는데, 열어보니 제가 손으로 지어낸 흉내였어요. 이런 식이었습니다.
def classify(photo):
scores = {c: 유사도(c) for c in 넷}
best = max(scores)
return best if 확신 else '기타'
실제로 도는 코드가 아니에요. "이런 느낌이겠죠?"를 코드처럼 적어놓은 거죠. 저장소 어디를 뒤져도 이런 줄은 없습니다.
한 편을 예로 보여드릴게요. 계산기 편의 3-2, "첫 명령은 '만들어줘'가 아니라 뭘 뺄지 정하기"라는 편입니다. 갈아엎기 전 대본이 이랬어요.

열두 줄입니다. 그중 화면과 관련된 건 딱 한 줄, text로 시작하는 카드 하나예요. 나머지는 전부 말풍선입니다. 그러니까 이 영상은 처음부터 끝까지 화면이 두 번밖에 안 바뀌는 영상이었습니다. 검은 화면 → 카드 → 끝.
카드가 왜 안 되는지, 뒤늦게 깨달은 것
처음엔 그냥 "심심하네" 정도로 생각했어요. 그런데 왜 심심한지를 따져보다가 좀 뜨끔했습니다.
요약 카드는 제가 지어낸 것이거든요. 대화 내용을 제가 다시 정리해서 예쁘게 적은 겁니다. 화면에 뜬 글자와 저 사이에 아무것도 없어요. 근거가 없다는 뜻입니다.
이 연재에서 제가 계속 하는 얘기가 있죠. AI에게 자료를 애매하게 주면 빈자리를 그럴듯한 걸로 메꾼다는 거요. 매장 사진 몇 장 주고 리뷰를 시켰더니 "직원이 외국어로 말하니 화면에 한국어 자막이 떴다"는 없는 장면을 써낸 적이 있었습니다. 실제로는 화면이 넓어서 타이핑이 편하다는 시연이었는데요.
제가 카드로 하고 있던 게 정확히 그거였습니다. 화면이라는 빈자리를 진짜 재료 대신 그럴듯한 요약으로 메꾸고 있었어요. 앞에 보여드린 그 카드, "AI는 애매한 자리를 지어내서 메꾼다"고 적힌 그 카드조차 지어낸 화면이었다는 게 좀 웃기죠.
그래서 규칙을 한 줄로 다시 적었습니다.
대사는 다듬어도 화면·코드는 실측만. 요약 카드로 알맹이를 때우지 않는다.
실제 재료는 이미 다 있었어요
다행히 재료를 새로 만들 필요는 없었습니다. 연재 글 여섯 편을 쓰면서 스크린샷을 이미 다 찍어놨거든요. 글에 넣으려고 찍어둔 것들이요.
| 글 | 찍어둔 장수 | 뭐가 들었나 |
|---|---|---|
| 클로드에게 처음 시킨 것 | 13장 | 계산기 화면 · engine.js · 테스트 · git log |
| 도구 하나가 나오기까지 | 10장 | 사진봇 설계문서 · git log · 테스트 |
| 서버 없이 어디까지 되나 | 12장 | 배포 로그 · 댓글 · 빌드 출력 · 문법검사 |
| 왜 만들기로 했나 | 12장 | 네이버 블로그 · 홈 · 도구들 |
| 무엇으로 만드나 (하드웨어) | 6장 | 맥미니 · 아이패드 · 외장 SSD · 도킹 |
| 안 쓰게 된 것들 | 10장 | 리포트 · 정지 이력 · 커밋 수 |
합쳐서 63장. 그래서 엔진에 폴더를 알파벳 한 글자로 등록해두고, 대본에서 ["img", "A06"]처럼 부르면 A폴더의 06번 사진이 뜨게 만들었습니다.

이게 바뀐 대본이에요. 같은 3-2편입니다.

열두 줄이 스물두 줄이 됐어요. 그리고 img · shot · zoom이 들어갔습니다. 화면에는 이런 게 뜹니다.

계산기를 만들 때 제일 먼저 쓴 설계 문서 원본입니다. 요약이 아니라 그날 그대로예요. 그리고 대화가 "지자체 지원금은 왜 빼?"로 넘어가는 순간, 문서의 그 부분을 확대해서 짚습니다.

'제외 (YAGNI)' 항목이 문서에 실제로 적혀 있는 게 보이죠. 카드로 만들었으면 제가 "지자체 지원금은 뺐습니다"라고 적었을 자리인데, 이제는 문서가 직접 말합니다. 이 차이가 생각보다 큽니다. 보는 사람이 "진짜네" 하고 넘어갈 수 있어요.
코드는 진짜 커밋에서만
코드 화면도 같은 원칙으로 다시 만들었습니다. 재료를 어디서 가져왔는지를 아예 파일 맨 위에 적어놨어요. 나중에 제가 봐도 출처를 알 수 있어야 하니까요.

커밋 번호가 다섯 개 적혀 있죠. 6+6 버그를 고친 커밋, 점검 7건을 반영한 커밋, 슬라이더, 예정일, 그리고 '생후 Infinity개월'을 잡은 커밋입니다. 영상에 나가는 코드는 전부 저기서 떠온 거예요.
예를 들어 계산기 설계 문서에서 출처가 엇갈리던 대목 — 대상 자녀 연령이 어떤 안내엔 만 8세, 어떤 안내엔 만 12세로 돼 있던 그 문제 — 은 이렇게 나갑니다.

uncertain: true라고 코드에 그대로 적어놓은 실제 줄입니다. "모른다"를 코드에 남긴 자리요. 대화가 "안 그러기로 했어. '모른다'를 코드에 그대로 남겼어"로 넘어가는 순간에 저 줄이 타이핑되면서 붙습니다.
사진 정리 봇 편은 그날 밤 git log를 그대로 띄웠어요.

21시 10분, 21시 48분, 22시 14분. 사진 2만 6천 장이 전부 '기타' 폴더로 간 걸 발견하고 고친 그 밤의 기록입니다. 카드에 "전부 기타로 갔다"고 적는 것과, 그날의 커밋 시각이 화면에 뜨는 건 무게가 다르더라고요.
만들다 터진 것 — 한글이 □ 로 나왔어요
여기서 한 번 걸렸습니다. 코드 화면에 쓰는 글꼴은 코딩용 등폭 글꼴(Menlo)인데, 이 글꼴에는 한글 글자가 없어요. 그래서 주석에 한글을 쓰면 그 자리가 전부 네모(□)로 나갔습니다. 위 화면의 // 출처 엇갈림 같은 줄이 통째로 깨지는 거죠.
코드 주석을 영어로 바꾸면 간단하지만, 그러면 보는 사람이 못 읽습니다. 주석을 없애면 왜 그 줄이 중요한지가 안 보이고요. 그래서 한 줄 안에서 글꼴을 섞어 그리도록 고쳤습니다.

하는 일은 단순해요. 한 줄을 받으면 글자를 훑으면서 '영문·기호 덩어리'와 '한글 덩어리'로 잘라내고(_runs), 덩어리마다 다른 글꼴로 그린 다음 그린 만큼 가로 위치를 밀어줍니다(mtext). 한글은 2픽셀 내려서 그려요. 두 글꼴의 기준선이 미묘하게 안 맞아서 그냥 그리면 한글만 붕 떠 보이거든요.
글자 폭을 재는 함수(mlen)도 같이 만들어야 했습니다. 타이핑 커서를 줄 끝에 놓으려면 그 줄이 몇 픽셀인지 알아야 하는데, 글꼴이 섞여 있으면 한 글꼴로는 못 재니까요.
53분 만에 62편
재료를 다 붙이고 나서, 편 묶음별로 나눠서 대본을 갈아끼웠습니다. 계산기 편 13개를 저녁 7시 16분에, 사진봇 편 12개를 7시 28분에, 정적 사이트 편 12개를 7시 35분에, 나머지 19개를 7시 47분에요. 마지막으로 각 묶음의 첫 편이 될 오프닝 다섯 편을 7시 56분에 새로 넣었습니다.
그리고 전부 다시 렌더했어요. 저녁 7시 4분에 첫 편이 나오고, 7시 57분에 마지막 편이 나왔습니다. 62편, 53분, 81.5MB.
| 갈아엎기 전 | 지금 | |
|---|---|---|
| 편수 | 56 | 62 |
| 요약 카드 | 56개 | 8개 |
| 실제 화면 | 3군데 | 110군데 |
| 실제 코드 | 3군데 (지어낸 것) | 21군데 (실제 커밋) |
| 한 편 길이 | — | 평균 24.4초 |
편 길이는 눈에 띄게 늘었습니다. 대본에 적힌 시간만 더해도 12초대에서 22초대가 됐고, 실제로 뽑힌 영상은 평균 24.4초예요. 제일 짧은 게 20.1초, 제일 긴 게 31.5초. 62편을 다 이으면 25분짜리가 됩니다.
왜 길어졌냐면, 화면이 생기니까 말이 붙더라고요. 카드를 띄워놓고 2초 멈추는 것과, 문서를 띄우고 → 잠깐 보여주고 → 특정 부분을 확대해서 짚고 → 그걸 두고 한마디 더 주고받는 건 걸리는 시간이 다릅니다. 3-2편은 대사가 다섯 마디에서 여덟 마디로 늘었어요. 마지막에 "만들 수 있냐는 내 몫, 뭘 안 만들지는 네 몫이야" 같은 마무리 한 줄이 새로 붙었고요.
남긴 카드 8개는 전부 비유·결론·목록입니다. 실제 화면으로 보여줄 수 있는 게 없는 자리요. 1년 유지비가 도메인 값 10.46달러뿐이라는 얘기 같은 건 스크린샷으로 찍을 게 없잖아요. 그런 자리만 남겼습니다.
그래서 맞는 판단이었나
그날 밤에 여섯 편을 유튜브에 올렸고, 다음 날 아침에 확인해봤습니다. 올린 지 12시간쯤 지난 시점이었어요.
| 편 | 조회수 |
|---|---|
| 3-1 계산기 만들다 6+6 버그 잡기 | 1,981 |
| 1-2 계산기 규칙 정리부터가 사람 몫 | 413 |
| 1-1 도구를 열댓 개 만들었는데 나만 보고 있었다 | 96 |
| 1-5 / 1-3 / 1-4 | 3 / 1 / 0 |
솔직히 말하면 이 표로는 "카드를 뺀 게 효과가 있었다"를 증명 못 합니다. 여섯 편 다 갈아엎은 뒤 버전이라 비교군이 없거든요. 대신 다른 게 보였어요. 제일 잘 돈 편이 버그 이야기였습니다. 계산기가 배우자 0개월인데 450만원을 뱉은 그 편이요. 소개하는 편(1-1, 1-3, 1-4)은 거의 안 돌았습니다.
3-1은 그 뒤로도 계속 돌았습니다. 8월 20일 기준으로 2,675회, 올린 지 610시간(약 25일)이 지난 시점이에요. 같은 연재 갈래의 다른 편들과 견주면 이렇습니다 — 연재 편 평균이 6시간 시점 430회, 24시간 531회입니다. 3-1은 12시간 만에 1,981회였으니 평균의 서너 배로 시작한 셈이에요.
여기서 솔직하게 적어둘 게 있습니다. 시청 지속률이나 유입 경로 같은 건 제 기록에는 없습니다. 저희가 매시간 남기는 건 조회·좋아요·댓글 수까지예요. 그래서 "왜 잘 돌았나"는 추측이고, 확인된 건 "잘 돌았다"까지입니다. 굳이 말하자면 제일 잘 돈 편이 소개가 아니라 사고 이야기였다는 것, 그거 하나가 자료로 남습니다.
그래서 순서를 바꿨습니다. 소개부터 차례대로 나가던 걸, 실제로 뭔가 터진 이야기부터 나가게요. 이 얘기는 다음 편에서 자동 업로드를 붙이면서 같이 다루겠습니다.
그리고 이 글을 쓰다가 하나 더 걸렸어요
이번 회차에 넣을 장면을 고르려고 62편을 다시 넘겨보다가, 남겨둔 카드 하나에서 이게 나왔습니다.

번호가 전부 네모입니다. 대본에는 ① ② ③ ④ ⑤ 라고 적혀 있어요. 그런데 화면에 쓰는 글꼴(Hahmlet)에 동그라미 숫자 글자가 없습니다. 없는 글자를 그리라고 하면 빈 네모가 나오는데, 그게 그대로 렌더돼서 나갔어요.
확인해보니 다섯 글자가 전부 똑같은 폭·똑같은 모양으로 그려지고 있었습니다. 다 같은 '없음' 표시였던 거죠. 앞에서 코드 화면의 한글 깨짐은 잡았는데, 카드 화면 쪽은 같은 병이 있는 줄도 몰랐습니다. 코드는 글꼴을 섞어 그리도록 고쳤지만 카드는 안 건드렸으니까요.
이 편은 이미 유튜브에 공개로 올라가 있습니다. 아직 안 고쳤어요. ①을 1.로 바꾸거나 카드 쪽에도 같은 혼용 렌더를 붙이면 되는데, 그러면 다시 렌더하고 다시 올려야 합니다. 다음에 그 묶음을 손볼 때 같이 처리하려고 남겨뒀어요.
굳이 이걸 적는 이유가 있습니다. 저는 이 프로젝트에서 "화면은 실측만"이라는 규칙을 세웠는데, 정작 그 화면이 제대로 그려졌는지는 재생해 봐야만 알 수 있다는 걸 또 확인했거든요. 대본에는 ①이라고 멀쩡히 적혀 있어요. 엔진도 오류를 안 냅니다. 렌더도 성공으로 끝나고요. 어디에도 빨간불이 안 들어옵니다. 사람이 영상을 재생해서 눈으로 보기 전까지는 아무도 모르는 종류의 고장이에요.
사람은 어디에 남았나
이번 편에서 AI가 한 일과 제가 한 일을 갈라보면 이렇게 됩니다.
AI가 한 일 — 엔진을 짰습니다. 5분할 화면 배치, 말풍선 애니메이션, CRT 주사선, 캐릭터 포즈 전환, 글꼴 섞어 그리기, ffmpeg으로 묶어내기. 이걸 저 혼자 만들었으면 몇 달 걸렸을 거예요. 편마다 대본을 짜 넣는 손도 같이 덜었고요.
제가 한 일 — 세 가지였어요.
첫째, 다 만든 걸 버리기로 한 결정. 이건 넘길 수가 없는 자리입니다. 쉰여섯 편이 이미 다 뽑혀 있었고, 올리기만 하면 되는 상태였어요. "이 정도면 됐다"와 "이건 아니다" 사이에는 기준이 없습니다. 있는 건 그걸 재생해 보는 사람뿐이에요.
둘째, 화면의 재료를 어디서 가져올지 정한 것. 카드로 때울 것이냐 실제 스크린샷을 붙일 것이냐는 기술 문제가 아니라 규칙 문제였습니다. 규칙을 "실측만"으로 못 박고 나니까 그다음은 거의 기계적으로 굴러갔어요. 스크린샷 폴더 여섯 개를 등록하고, 커밋 번호를 파일 맨 위에 적고, 편마다 어느 사진의 어느 좌표를 쓸지 정하고. 오래 걸린 건 판단이었지 작업이 아니었습니다.
셋째, 재생해서 눈으로 보기. 네모로 나간 번호를 잡은 건 코드를 읽어서가 아니라 영상을 틀어서였어요. 검사로 못 잡는 종류의 고장이 있고, 이 프로젝트는 그런 게 특히 많습니다. 화면이 결과물이니까요.
한 줄로 줄이면 이렇습니다. 만들 수 있냐는 AI 몫이고, 이게 볼 만한가는 사람 몫이더라고요. 공교롭게도 갈아엎은 뒤의 3-2편 마지막 대사가 그 말입니다. "만들 수 있냐는 내 몫, 뭘 안 만들지는 네 몫이야."
다음 편에서는 이 62편을 유튜브에 매일 자동으로 올린 이야기를 하겠습니다. 자동으로 만들고 자동으로 줄 세웠는데, 나가는 문 하나만 일부러 사람 손에 남겨둔 이유가 있었어요.
#AI로사이트만들기 #휴먼인더루프 #유튜브쇼츠 #쇼츠만들기 #쇼츠자동화 #영상자동화 #숏폼제작 #파이썬 #ffmpeg #Pillow #코드로영상만들기 #클로드 #클로드코드 #바이브코딩 #1인개발 #개인개발자 #사이드프로젝트 #맥미니 #victorhouse #블로그운영 #콘텐츠제작 #유튜브채널운영 #스크린샷 #폰트깨짐 #한글폰트 #등폭폰트 #육아휴직계산기 #정적사이트 #깃로그 #재작업