복리로 쌓인 건 지식이 아니라 실패였습니다
미용실 1호 고객 블로그 발행 시스템을 LLM Wiki로 2개월 돌린 기록
저는 이런 걸 만들고 있습니다
소상공인이 슈퍼마켓에서 생필품 사듯 AI 마케팅을 쓰게 하는 걸 하고 있습니다. 1호 고객은 강동구청역 앞 미용실입니다. 상호가 바뀌었는데(체인 → 개인 브랜드) 아직 아무도 모르고, 원장님은 동네 미용실에서 손상모·심한 곱슬 전문으로 방향을 틀고 싶어 하십니다. 마케팅 예산은 월 50~60만 원. 유료 광고는 불가능하니 블로그·스레드로 승부해야 합니다.
그런데 제 진짜 목표는 이 미용실 블로그를 잘 쓰는 게 아닙니다. 다음 가게에 그대로 복사할 시스템을 만드는 겁니다. 그래서 처음부터 두 레이어를 갈라놨습니다.
레이어 1 (고객 결과물) → 미용실 블로그·스레드 발행물
레이어 2 (진짜 제품) → 그걸 만드는 동안 반복 가능한 부분만 기록한 것
시스템을 따로 기획하지 않습니다. 미용실을 직접 손으로 하면서 반복되는 것만 기록하면 그게 시스템이 된다고 보고 있습니다.
스터디 오기 전에 이미 하고 있었는데, 이름이 없었습니다
카파시 gist를 읽고 나서 제가 한 일은 새 구조를 만든 게 아니라 이미 하던 것에 이름을 붙인 것이었습니다. 저장소 루트에 LLMWIKI.md 한 장을 만들고 매핑표를 채웠습니다.
LLM Wiki 개념
우리 저장소 실제 위치
raw (불변 원자료)
os/알레이헤어/1.raw — 자사·경쟁·고객VOC·시장·채널 5C
wiki (LLM이 정리한 지식)
os/알레이헤어/2.wiki — 원장 목소리 기준, 모발과학, VOC
schema (관리자 규율)
os/알레이헤어/CLAUDE.md — 화자·고객·톤·구조의 북극성
index (질의 진입점)
2.wiki/README.md, docs/work/_목차.md
log (시간순 append-only)
docs/history/ (서사) + docs/work/작업일지/ (원가)
output
docs/work/발행/YYYY-MM-DD/<주제>/
별거 아닌 작업 같은데, 이걸 하고 나서야 다음 가게 복제가 가능해졌습니다. 이름이 없는 구조는 복사할 수 없더라고요. 어디까지가 이 가게 전용이고 어디부터가 재사용 조각인지 구분이 안 되니까요.
그래서 지금은 3층으로 나눠져 있습니다.
docs/ ← 이 가게의 진실과 과정 (메타)
os/알레이헤어/ ← 실제로 돌아가는 인스턴스 (raw → wiki → output)
llm_wiki/ ← 방법론·스키마·포맷 (가게마다 포크하지 않고 참조만)
복리가 실제로 도는 지점은 성공이 아니라 사고 기록이었습니다
2주차 주제가 "지식의 복리"였는데, 저희 위키에서 제일 자주 읽히는 문서를 열어보니 성공 노하우 정리본이 아니었습니다. 2.wiki/발행-배운점.md입니다. 첫 줄이 이렇습니다.
새 소재를 시작하기 전에 이 문서를 먼저 읽는다. 한 글에서 얻은 교훈이 다음 글에 반영되지 않으면 같은 사고가 반복된다.
여기 쌓이는 건 전부 사고 기록입니다. 세 가지만 옮겨 보겠습니다.
1) 겹침은 소재가 아니라 문장에서 샜습니다
기획 단계에서 "이 글의 각도가 앞 글과 겹치는가"는 대조하고 통과시켰습니다. 그런데 발행 직전에 걸린 건 전부 문장이었습니다.
겹친 표현
몇 편째였나
"약보다 진단이에요"
5편째가 될 뻔
"약으로 잠깐 풀었다가 열로 다시 굳히는"
4편째 (3일 연속)
큐티클 = "기왓장" 비유
2편째
각도 대조와 문장 대조는 다른 일이었습니다. 각도만 보다가 최근 2주 발행글 3편을 통째로 놓쳤습니다. 그리고 대조 우선순위도 뒤집혔습니다 — 수개월 전 아카이브 155편보다 바로 앞 2주에 나간 글이 훨씬 위험합니다. 같은 시기에 같은 사람이 썼으니 어휘가 그대로 따라오거든요.
2) 자기 검사가 "통과"라고 거짓 보고를 했습니다
이게 제일 무서웠습니다. 하나의 소재를 A·B 두 편으로 나눠 각각 생성 에이전트를 돌렸는데, 두 에이전트가 모두 자체 유사도 검사를 "통과"로 신고했습니다. 실제로는
A편이 6일 전 발행글과 9어절 연속 일치 ("오늘은 여기까지만 하자고 말씀드리…")
B편의 원리 설명 사슬("단면 → 큐티클 → 수분 → 푸석")이 3편째, 그중 한 구절은 4어절 완전 일치
원인을 파보니 A편은 제목 충돌만 보고 본문을 안 맞췄고, B편은 6음절 n-gram이라 앞부분만 겹치고 뒤가 갈라지는 어구를 구조적으로 못 잡았습니다. 네이버 유사문서 판정은 그걸 잡습니다.
여기서 배운 건 검사 방식보다도, 에이전트의 자기 신고를 그대로 믿으면 안 된다는 쪽이었습니다. 그래서 검사 결과가 아니라 검사가 틀렸던 사실 자체를 기록으로 남기게 했습니다. 각 글의 메타데이터에 selfCheckFailure(자체 검사가 뭘 놓쳤나), priorClaimWasWrong(이전 판단 중 틀린 것) 필드를 두고 매번 채웁니다.
발표 중에 "런백(runbook)의 기준을 어떻게 정하느냐"는 질문이 나왔는데, 저희는 아직 자동 판정 기준은 없고 사람이 걸러낸 순간을 무조건 적는 것으로 대신하고 있습니다.
3) "전수 대조했다"고 적었지만 5편만 봤습니다
리서치 문서에 "아카이브 155편 + 발행분 전수 대조" 라고 적혀 있었습니다. 실제로 본 건 5편이었습니다.
과장된 표기가 다음 글에서 같은 사고를 부릅니다. 다음 작업자(사람이든 에이전트든)가 "이미 전수 대조했구나" 하고 안 봅니다. 그래서 규칙을 하나 추가했습니다 — 실제 한 만큼만 적는다.
이 세 건이 전부 다음 글 시작 전 체크리스트가 됐습니다. 이게 저한테는 복리였습니다. 지식이 쌓여서가 아니라, 실패가 다음 작업의 입력으로 배선됐을 때 돌기 시작했습니다.
제일 아팠던 건 "빈 칸을 자산으로 착각한 것"입니다
원장님 블로그 155편을 어휘 단위로 분석하다가, 업계 용어 몇 개가 거의 안 쓰이는 걸 발견했습니다.
단어
155편 중
반곱슬
27편
파상모
2편
셰이프
0편
"모양"
101편
저는 이걸 보고 "아직 아무도 안 쓴 비어 있는 자산" 이라고 판단했습니다. 그래서 생성된 초안이 파상모 9회, 셰이프 8회를 쓰는 걸 그대로 통과시킬 뻔했습니다.
틀렸습니다. 비어 있는 이유를 따지지 않은 게 문제였습니다. 원장님 현장 노트 원문을 다시 열어보니 이렇게 적혀 있었습니다.
"저희가 말하는 이런