제 유튜브 자동화 대시보드에 "자기개선 게이트 발화"라는 줄이 떠 있었습니다. 여덟 개 레버가 나란히 초록 불(●). 앱 순서 자기개선, 유지곡선 힌트, 창작 DNA, 카테고리 성과. 데이터가 임계를 넘으면 no-op에서 "동작"으로 바뀌는 구조입니다. 보고 있으면 뿌듯합니다. 시스템이 스스로 배우고 있는 것처럼 보이니까요.
질문 하나 먼저 드립니다. 당신의 파이프라인에도 "학습됨", "활성", "발화" 같은 라벨이 있다면 — 그건 정말 무언가를 바꾸고 있습니까, 아니면 로그를 남기고 있습니까? 둘을 구분하는 방법은 의외로 간단합니다. 그런데 저는 몇 주 동안 그 구분을 안 하고 있었습니다.
"발화"가 실제로 뭘 하는지 추적했다
라벨을 믿지 않기로 하고 한 문장을 걸었습니다: 이 이벤트가 실제로 무엇을 바꾸는가. 자기학습 루프라면 반드시 producer → 파일 → consumer 삼단이 있어야 합니다. 무언가를 측정해서(producer) 파일에 적고, 그 파일을 누군가 읽어(consumer) 다음 행동을 바꿔야 합니다. 소비처가 없으면 그건 루프가 아니라 그냥 기록입니다.
그래서 각 레버의 출력 파일을 grep으로 추적했습니다. 결과는 둘로 갈렸습니다.
닫혀 있던 절반 — 선정 루프. 성과 집계(조회 × 완주율 × 참여)가 app_perf.json에 앱 순위를 적고, 로테이션 코드가 그걸 읽어 다음에 올릴 앱 순서를 실제로 바꿉니다. 소비처 확인됨. 이건 진짜 폐루프였습니다. 표본이 얇을 때의 노이즈 과적합 문제는 예전에 표본 문턱으로 막아뒀고요.
열려 있던 절반 — 창작 루프. 여기서 착시가 드러났습니다. "창작 DNA"는 채널을 가로질러 어떤 훅이 먹히는지 학습합니다 — "짧은 훅이 유지율 높음", "이 앱은 첫 1초 이탈이 크다". 이 힌트들이 파일까지 잘 나옵니다. 그런데 그 파일을 읽는 코드를 grep하니, 검토위원회(게시 전 반려 게이트) 한 곳뿐이었습니다. 실제로 자막을 만드는 생성기 — 번역기와 하드코딩된 훅 — 는 그 힌트를 한 번도 읽지 않았습니다. grep 공집합.
이게 왜 착시인가
위원회는 근접 중복을 반려할 수 있을 뿐, 짧은 훅을 만들 수는 없습니다. 즉 "짧은 훅이 이긴다"를 학습해도, 그 지식이 도달하는 유일한 곳이 "거부 도장"이었던 겁니다. 배운 속성이 저작자에게 닿지 못하면, 시스템은 우연이 아니고서는 그 속성을 더 생산할 방법이 없습니다.
대시보드의 "창작 DNA ● 발화"는 학습 → 개선의 서사를 그리고 있었지만, 실체는 관측 + 게이트였습니다. 저작에 반영된 양은 정확히 0이었습니다.
여기서 잠깐. 당신이라면 어떻게 하시겠습니까? 학습된 신호를 계속 게이트(거부)에만 물려두겠습니까, 아니면 저작자(생성)에 물리겠습니까? 저는 후자를 택했습니다. 게이트는 나쁜 걸 걸러낼 뿐이고, 좋은 걸 더 만드는 건 저작자만 할 수 있으니까요.
절반을 닫았다 — 그리고 정직한 한계
번역 생성 프롬프트에 학습된 훅 속성을 언어별로 주입했습니다. dna_hints.json이 en은 "긴 훅 우세", ja는 "짧은 훅 우세"라고 배웠으면, 그 지침이 그대로 번역기 프롬프트에 들어갑니다. 이제 선정뿐 아니라 창작도 폐루프입니다. 힌트가 없으면 빈 문자열 = 무동작(표본 게이트가 빈 힌트를 보장).
그런데 여기서 두 가지는 일부러 안 했고, 그걸 숨기지 않겠습니다.
- 유지곡선 힌트는 주입하지 않았습니다. 그건 앱별(slug 단위) 진단인데, 학습된 슬러그 우주(운세 앱)와 이 생성기가 다루는 앱 우주(다운로드 앱)가 다릅니다. 넣으면 조회 시 항상 miss = 커버리지가 있는 척하는 위장이 됩니다. 안 하는 게 정직합니다.
- 임팩트는 작습니다. 이 힌트는 다른 채널에서 학습된 약한 전이 prior이고, 대상 채널은 지금 조회수 세 자리의 near-dead 상태입니다. 열린 루프를 올바르게 닫은 아키텍처 수정이지, 당장 숫자를 끌어올릴 마법이 아닙니다.
- 하드코딩된 훅은 여전히 열려 있습니다. 사람이 직접 갈아야 반영되는 부분이라 자동화하지 않았습니다.
자가진단 3줄
당신의 자동화에도 "학습됨" 라벨이 있다면, 지금 이 세 가지를 확인해 보세요.
- 학습이 뽑아낸 값 파일 하나를 골라 **소비처를
grep**해 본 적 있습니까? (몇 곳이 읽습니까?) - 그 신호는 게이트(거부)에 물려 있습니까, 저작자(생성)에 물려 있습니까?
- 대시보드의 "발화/활성"이 실제로 다음 행동을 바꿉니까, 아니면 알림만 띄웁니까?
솔직한 결론
가장 위험한 지표는 빨간 숫자가 아니라, 좋아 보이는 초록 라벨입니다. "자기학습 중"이라는 글자는 제가 아무것도 안 해도 시스템이 나아지고 있다고 저를 안심시켰습니다. 실제로는 배운 걸 아무도 읽지 않고 있었고요.
지금 당신 자동화의 "학습된 값" 파일 하나를 골라, grep으로 그걸 읽는 코드를 세어 보세요. 0이면, 그건 학습이 아니라 기록입니다. 이 1원칙 한 문장이 제 대시보드의 착시를 몇 번이나 걷어냈는지 모릅니다.