📝 한줄 요약
하루 13시간 녹음을 매일 새벽 2시에 자동으로 일기 한 장으로 만드는 파이프라인을, whisper + AI 요약 + 캘린더 컨텍스트 3단 구조로 일주일 만에 구축했습니다.
바쁘시면 이것만 읽어도 돼요:
- Claude Code로 녹음 → 일기 자동화 구축, 수동 정리 불가 → 매일 02:00 자동 생성
- 깨달음: AI 한 명에게 다 맡기지 말고 3중 검증(STT / 요약 / 시간보정)으로 쪼개기
- 핵심: 캘린더 일정을 프 롬프트 컨텍스트로 미리 주입해 시간대 환각 차단
- 비용: 로컬 STT 모델 사용으로 API 비용 0원
- 교훈: AI한테 "판단"까지 맡기지 말고 "작업"만 시키기 — 구조는 사람이 강제
🎯 이런 분들께 도움돼요
- 녹음·메모만 잔뜩 쌓아두고 다시 못 보는 분
- AI 일기/저널 앱이 흐름에 안 맞았던 분
- 매일 자동으로 돌아가는 개인 자동화 하나 갖고 싶은 분
😫 문제 상황 (Before)
녹음기로 하루 13시간 녹음하니 "이거 다 글로 풀면 인생이 검색 가능해지는 거 아냐?" 싶었는데:
- 침묵 구간에서 STT가 "감사합니다" 100번씩 환각 폭주
- AI한테 요약 시키면 시간대를 헷갈려 오전 일을 저녁에 적음
- 매일 30분씩 수동 정리하다 결국 손 놓게 됨
"AI 한 명한테 13시간 던지고 좋은 결과 받기"는 불가능했어요.
🛠️ 사용한 도구
- 메인: Claude Code (Opus 4.7) — 파이프라인 코딩
- STT: mlx-whisper (로컬 실행, API 비용 0원)
- 요약: Codex CLI (이벤트 추출)
- 자동화: macOS launchd, Obsidian
🔧 작업 과정
1. v1 실패 — "AI한테 판단까지 맡기지 말자"
처음엔 욕심을 부려 "회의 단위로 잘라서 노트 N장 만들자"고 던졌어요.
하루 녹음을 회의 경계 감지해서 회의별 노트로 만들어줘
일주일 돌렸더니 어떤 날은 노트 5장, 어떤 날은 한 장. 결국 매일 내가 재정리하고 있었습니다. 자동화의 의미 상실.
가장 큰 깨달음: "구조는 내가 강제하자."
2. v2 — 하루 1파일로 단순화
구조를 바꿨더니 모든 게 풀렸어요. 하루 노트 1장, 안에서 시간대별 블록, 원본은 접힌 callout으로 보존.
검 색·정리 둘 다 사람 손이 안 들어감.
3. STT 환각 잡기
침묵 구간 환각 패턴이 정형적이라 — 같은 문장 5번 반복, 자막 클리셰 — 패턴 필터를 붙이니 본문이 30% 짧아지면서 신호 대 잡음비가 확 올라갔습니다.
4. 시간대 환각 — 캘린더 컨텍스트 주입 (★ 핵심)
가장 인상적이었던 순간이에요. AI가 시간대를 자꾸 헷갈렸는데, 두 가지 안을 놓고 다른 AI에게 의견을 비교받았습니다.
- A안: 프롬프트에 그날 캘린더 일정을 같이 넣기
- B안: 후처리에서 시간 보정
A안으로 갔습니다. "처음부터 올바른 시간대로 생각하게 만드는 게 나중에 고치는 것보다 안정적"이라서. 프롬프트에 일정을 같이 주입한 순간 시간대 환각이 0건이 됐어요.
5. launchd 자동화
매일 02:00 실행 → Obsidian vault에 직접 기록. 일어나면 어제 일기가 이미 있음.
✅ 결과 (After)
- 소요 시간: 매일 30분 수동 정리 → 0분 (완전 자동)
- 검색 가능성: 거의 불가능 → 모든 대화 vault 검색 가능
- 누락률: 90%+ → 0% (모든 녹음 처리)
- 비용: STT API 월 수만 원 예상 → 0원 (로컬 모델)
💬 이 과정에서 배운 AI 활용 팁
효과적이었던 것
1. AI 한 명에게 다 맡기지 말기 — STT / 요약 / 시간보정 각각 다른 도구로
2. 틀린 걸 고치지 말고 처음부터 안 틀리게 — 후처리보다 프롬프트 컨텍스트 주입
3. 두 가지 안이 떠오르면 다른 AI에게 비교 자문 — 결정 품질이 확 올라감
🚀 앞으로의 계획
- 화자분리 통합 (지금은 누구 목소리인지 모름)
- 주간 요약 자동 빌드 (월~일 7장 → 주간 1장)