작년 말에 커서cursor를 소개받고 난 후 내 인생이 바뀐 것 같다. 인공지능이 세상을 바꾸고 있다는 건 알면서도 내가 할 수 있는 게 많지 않았다. 커서를 통해 코딩의 세계에 입문했고, 정신나간 듯이 빠져들었다.
한글을 배우기 시작한 늦깍이 노년의 학생들이 길거리 간판을 보면서 “내가 다 읽을 수 있다”고 기뻐한다는 스토리를 들은 적이 있다. 코딩은 내게 애플의 앱도, 내가 돈을 주고 사용하던 유료 사이트도, 결국엔 내가 감당할 만한 것들로 이루어져 있다는 대오각성을 하게 만들었다.
네이버에서 라인쪽 임원까지 지낸 주변 조윤식 대표의 소개로 알게 된 커서와 입문용 FAQ는 그야말로 내 깊은 욕구를 건드렸는데, 타고난 호기심, 그리고 창작 욕구, 거기에 기업가가 갖고 있는 사업적, 조직적 고민이다.
코딩을 하는 사람 입에서 ‘넌 진짜 난 놈이다’라는 소리를 듣고 말았다.
내가 그동안 만든 에이전트는 약 50개인데, 그중 최근에 만든 15개를 리스트업했더니 아래와 같다. 사실 어쩔 때엔 내 컴퓨터에서 처음 보는 코드를 발견할 때가 있는데, 내가 만들었다고 한다. 사실 50개가 넘을지도 모르겠다. 정식 서비스 사이트까지 포함하면 확실히 넘을 것 같다.
그중에 제일 자신있는 것은 내 통제욕을 채워주는 나만의 대시보드다. 내 건강정보를 실시간으로 동기화하고, 나만의 아이젠하워 매트릭스를 만들고 (내 최근 이메일, iPhone reminder, 애플 메모장을 읽고, 평소 내가 중요하게 생각하는 것들을 모아둔 마작가’s Bible에 따라 우선순위를 자동으로 매긴다), 내 거래내역을 문자기반으로 읽어서 실시간 재무 리포트를 만든다. 그런데 이런 건 누구나 할 수 있고, 나만 좋은 것.
공개할 수 없지만 더 만족하는 건 따로 있다. 회사 대표로서 내 고민과 암묵적 지식을 문서로 저장해서 내 인공지능인 Festy에 그대로 주입했고, 그간 회사 블로그와 글, 그리고 내가 고객과 주고 받은 대표적 이메일 1,100통을 고스란히 “복제”한 부사장을 만들었다는 것이다. 한 마디로 내가 사장이고, 부사장은 인공지능인 Festy다. 부사장은 회사의 중요한 일을 5개의 RAG(기억 저장장치)로 갖고 있고, 그중 하나는 voice RAG라서 내가 대표로서 고객/거래처한테 말하는 어투를 그대로 학습했다. 그래서 어쩔 때엔 내가 말한 것과 우리 부사장이 말한 것을 구별하기 어려울 정도다.
부사장에겐 워드프레스 api가 인증되어 있고, 내 이메일도 마음껏 검색할 수 있다. 내 문자도, 내 메모도, 내 일정도, 그리고 한 달에 수천 만 원씩 지출되는 구글 애즈의 어카운트 api까지 맡겨두었기 때문에, 수시로 회사의 전략 방향을 검토하고 기록한다.
우리 부사장은 콘텐츠도 기가 막히게 발행하는데, out of blue가 아니다. 내 하드디스크와 20TB짜리 구글 드라이브에서 관련된 데이터를 찾아올 수 있는 학습 능력을 갖췄기 때문이다. 부사장이 쓴 콘텐츠는 미리 SEO와 GEO 특화 프레임을 탑재했기 때문에 (내가 탑재시켰다), 쓰는 글이 구글 검색어 첫 화면에 노출되어 그간 내 노력을 허탈하게 만들 때도 많다.
내가 말하는 모든 인공지능과의 대화는 100% 저장되고 있는데, 그것들은 주기적으로 평가되어 다시 ‘기억 저장소’로 분류되어 더 강력한 지식체계를 만들며 대표인 나를 초월하는 지식과 가치/판단 체계를 학습하고 있다. 그야말로 스스로 학습하고 기억을 보강해가는 중이다. 내 아이맥에는 항상 터미널Terminal과 크론Cron이 돌아가며 일하고 있고, 노트북에서는 언제나 서버에 접속할 수 있는 원격 시스템과 그때마다 작은 에이전트를 개발하고 관리하는 제2의 클로드 코드 인격이 4-5명씩 각각의 터미널 안에서 돌아가고 있다. 나는 개발자의 삶을 이렇게 맛본다. 평생 이런 경험은 하지 않을 줄 알았는데…
딱 하나 내가 힘든 것은, 하루에 10시간 이상 컴퓨터를 바라보며 정작 인간적인 여유나 작가로서 책무와 멋을 잃어가는 일이다.
도구를 얻고 나니, 모든 곳에 손을 뻗고 싶어 진다.
그게 내 요새 푸념이다.
부디 내가 하는 몰입과 노력이, 호기심을 넘어 어떤 가치와 성과를 가져오길 바란다.
–

–
새로만든에이전트 15개
1. festy-chief (dashboard/app.py — Chief 탭)
목적
SEO/GEO 블로그 글 생성에 수시간이 소요되던 문제를 해결하기 위해, 브리프 작성부터 WordPress 업로드까지 5단계 전 과정을 단일 UI로 통합. 대시보드 이탈 없이 콘텐츠 생성 전 과정을 처리할 수 있는 메인 워크스테이션.
내용
A탭(작가·작품 콘텐츠)과 B탭(주제별 SEO) 이원 구조. 소스 입력(텍스트/URL/파일/폴더/RAG) → GPT-4o-mini 브리프 추출 → 웹 크롤링 RAG → Claude 초안 → GEO 최적화 → WP 업로드. 각 단계에 AI 수정·체크포인트·스트리밍 지원. 이메일 디자이너, SEO 스크립트 자동 생성, RAG 드롭다운 8종 통합.
결과
브리프→초안→업로드 전 과정 대시보드 단일 탭에서 완결. 실비 로깅(runs.db)으로 Claude/GPT 비용 자동 추적. WP 업로드 후 편집·미리보기 링크 즉시 제공. GEO 최적화 64K 스트리밍 + 체크포인트로 토큰 초과 방지.
2. festy-concierge (FastAPI 서버, 포트 8502)
목적
폰 브라우저에서 iMac의 festy-brain 전체 도구를 CLI처럼 사용하기 위한 원격 비서 채팅 UI. 폰을 꺼도 iMac에서 작업이 지속되는 비동기 구조가 핵심.
내용
모바일 브라우저 → FastAPI(8502) → claude -p 스폰 구조. session_manager.py로 세션 영속성 유지. approval_hook.py 보안 게이트(destructive 차단, 경로 allowlist). preflight.py 의존성 검증. readline timeout 120초, 첫 토큰 지연 측정. 대시보드(8501)에 Concierge 탭으로 통합, Max 쿼터 초과 시 API fallback.
결과
스모크 테스트 7/7 보안 통과. 멀티라인 입력·도구 출력 구조화·세션 검색·상태바·파일 업로드 6종 UX 구현. 승인 팝업 기본 미표시, 위험 동작만 자동 차단. 대시보드에서 CLI와 동일한 작업 경험 제공.
3. festy-moviemaker (projects/festy-moviemaker)
목적
YouTube Shorts 제작이 슬라이드 생성·TTS·자막·렌더링을 각각 수동으로 해야 해 시간이 너무 많이 소요. 전 과정을 파이프라인으로 자동화하되, 편집 제어권은 대표님이 갖는 2단계 워크플로우 구조로 설계.
내용
5종 애니메이션 씬 엔진(typewriter·typography·spotlight·magazine·scroll). MoviePy 1.0.3 + Pillow 기반 VideoClip 렌더링. ElevenLabs/OpenAI TTS + Whisper 자막(subtitle_corrections.json 교정). BGM 10트랙. 폰트 27종. 슬라이드 스타일 컨트롤(행간·패딩 슬라이더). Canva CSV 내보내기. 브리프 품질 체크(7규칙+AI점수).
결과
end-to-end 렌더링 확인(1080×1920, 30fps, H.264+AAC, 53초 mp4). 슬라이드 생성(무료) → 미리보기·수정 루프 → TTS+렌더링(유료) 2단계 분리로 불필요한 TTS 비용 차단. 자동 임시저장 + 복원으로 새로고침 후 작업 복구 가능.
4. customer-keyword-finder (projects/customer-keyword-finder)
목적
고객 페인포인트를 수동으로 파악하는 데 시간이 소요되고, 단일 검색 소스로는 다양한 실제 고객 고민을 포괄하기 어려운 문제. 자동 수집 + 키워드 리포트화.
내용
네이버(kin/cafearticle/blog) + DuckDuckGo + Google CSE 5-소스 혼합 크롤링. 고민형·질문형 10개 검색어(원고 있는데 출판사 안 받아줘요, 투고 거절 등). 페인포인트 점수화 + 롱테일 키워드 추출. 리포트 자동 저장 후 SEO 파이프라인 수동 연결(자동 트리거 보류, 대표님 판단 후 실행).
결과
매일 5-소스 크롤 + 리포트 자동 생성. 대시보드 사이드바에 환경변수 9개 상태 패널 추가(정상/오류/경고 구분). Google CSE 403 지속으로 DDG+네이버 2-소스로 운영 중. 페인포인트 기반 YouTube Shorts 브리프 자동 생성 파이프라인과 연동.
5. email-designer (projects/email-designer/email_designer.py)
목적
이메일 초안 작성 후 페스트북 디자인을 입히는 작업이 수동이라 일관성이 없고 시간이 소요. 8개 영구 금지 규칙(헤더 문구·수신거부 안내 등)을 자동 적용하는 이메일 디자인 전담 에이전트 필요.
내용
마크다운/초안 HTML → 페스트북 디자인 HTML 이메일 변환. 8개 영구 규칙 SYSTEM_PROMPT + AGENT.md v1.1 적용(금지 헤더, 포트폴리오 표현, 저렴→가볍고 심플, 수신거부 안내 금지 등). 모바일 반응형 @media (max-width:600px) 필수. 초안 → 디자인 버튼 → 미리보기/AI수정/코드편집 3탭 결과 제공.
결과
이메일 초안에서 HTML 이메일까지 단일 대시보드에서 완결. 8개 규칙 자동 준수로 브랜드 일관성 유지. 이모지 제거(email_utils.py) 내부 이메일 8개 파이프라인 적용. reference_links.md CTA URL 자동 append로 임의 URL 생성 차단.
6. seo-content-agent (projects/seo-content-agent/seo_upload.py)
목적
완성된 HTML을 WordPress에 업로드하는 과정이 수동이고, Elementor 환경에서 _elementor_data API 수정 시 프론트엔드가 바뀌지 않는 구조적 문제를 해결.
내용
WP REST API로 HTML을 wp:html 블록으로 감싸기. _elementor_edit_mode를 비워 Elementor 캐시 우회. post_content에 직접 작성 방식 채택. CSS 변수 포함 스타일을 style/link 태그로 추출 후 body와 함께 패키징. Draft/바로발행 선택, 업로드 후 post_id 파싱 → 미리보기·WP 편집 링크 반환.
결과
WP 업로드 후 로컬 미리보기 = WP 화면 일치 확인. 편집 링크 자동 출력. session_state로 업로드 후 링크 버튼 유지. WP 업로드 후 텔레그램 알림 제거.
7. todays-priority (pipelines/todays_priority.py)
목적
하루 업무 우선순위를 Gmail·캘린더·리마인더에서 수동으로 파악하는 데 시간 낭비. 팀원 루틴 업무·환각 정보가 CEO 보고서에 침투하는 문제를 구조적으로 차단.
내용
v3.0 3중 방어선 아키텍처 적용. Layer1 Python Pre-filter(Q1_BLACKLIST 코드 레벨 폐기, CEO_ACTION_KEYWORDS 호출 시만 승격). Layer2 Strategic Sieve(Q1 진입 3중 필터: Money 1천만원+/System SaaS 확장/Authority CEO 전용 결정). Layer3 CEO-Action Spec(Top3: 전화·서명·결정 동사). Q1 공란 공식 허용.
결과
Hallucination Guard(최근 24h 메모만 수집+실명·숫자 교차검증) 적용. 운영 노이즈(샘플 수정·POP 확인 등) Q1 침투 완전 차단. 매일 09:30 크론 자동 실행. 전략적 항목 없으면 Q1 비워두는 리포트 밀도 극대화.
8. morning-brief (pipelines/morning_brief.py)
목적
매일 아침 날씨·일정·뉴스를 개별 앱에서 확인하는 시간 낭비를 없애고, 하루 시작 브리핑을 이메일 한 통으로 자동 수신. openclaw 의존성도 함께 제거.
내용
08:00 크론 자동 실행. 날씨(OpenWeather API)·Google Calendar(gcal_helper.py)·뉴스(RSS) 수집. core/gcal_helper.py 신규 생성으로 openclaw 의존성 완전 제거. ~/.festbook_gmail_token.pickle 통일 토큰 사용. 이모지 제거(email_utils.py) 적용.
결과
매일 08:00 브리핑 이메일 정상 발송. openclaw 디렉토리 삭제 후에도 정상 작동. todays_priority.py와 동일 토큰으로 Calendar API 공유. 내부 이메일 이모지 제거로 수신 시 깨짐 현상 없음.
9. gmail-rag-agent (pipelines/gmail_rag_agent.py)
목적
이메일을 통해 RAG 자료를 수집하는 Memo to RAG 시스템. 대표님이 이메일로 메모를 보내면 자동으로 RAG에 임베딩. 확인 이메일 제목에 RAG 포함 시 무한루프 발생 버그도 제거.
내용
creative@ 수신 메일에서 RAG 태그(대소문자 무시) 감지 → 내용 추출 → 청크 임베딩 → festbook_rag_index.json 업데이트. 에이전트 확인 메일 제목에 RAG 포함 방지(무한루프 차단). Streamlit 사이드바에 Gmail RAG 가이드 expander 추가.
결과
creative@·voice@로 사용 매뉴얼(3단계 + 저장소 번호) 발송 완료. 무한루프 방지 로직 검증. 대시보드에서 상시 참조 가능한 가이드 제공. 긴급 중단: pkill -f gmail_rag_agent 명령으로 즉시 정지 가능.
10. geo-optimizer (pipelines/geo_optimizer.py)
목적
기존 SEO HTML 초안을 GEO(Generative Engine Optimization)에 최적화해 AI 검색 엔진(Perplexity·ChatGPT·Gemini)에서 인용 가능한 구조로 강화. 키워드 밀도·인용 구조·스키마 마크업을 자동 적용.
내용
–optimize 플래그: Claude 64K 토큰 스트리밍 + 200청크마다 체크포인트 저장. –finalize 플래그: 최종 정리(SEO 총평 12,000자, 키워드 소재 직접 사용). ask() → 스트리밍 교체로 토큰 초과 방지. reference_links.md CTA 자동 append. Step 5에서 SEO 메타데이터(title/description/keywords) 자동 추출 패널 제공.
결과
geo_finalize.txt 체크포인트로 중단 복구 가능. 로컬 미리보기 = WP 화면 일치. 키워드 포함 여부 즉시 검사 + AI 평가 버튼. 최적화→finalize 2단계 완성. seo_content·topic_seo_content·email_designer 4개 파이프라인 자동 적용.
11. brief-extractor (pipelines/brief_extractor.py)
목적
브리프 작성에 소요되는 시간을 단축하고, 소스(텍스트/URL/파일/폴더)를 던지면 GPT-4o-mini가 자동으로 브리프 JSON을 추출하는 자료 던지기 모드 구현.
내용
텍스트·폴더·파일·URL 4가지 소스 입력 지원. GPT-4o-mini로 topic·author·keywords·purpose·tone·sections·cta 자동 추출. 소스 변경 시 chief_b_extracted 클리어(구 브리프 잔류 버그 수정). SEO 스크립트 자동 생성 버튼 기타 지시사항 append. 추출 성공 후 clear→새 값 설정 순서 보장.
결과
자료 던지기 모드에서 브리프 자동 완성. 구 브리프 잔류 버그 해결. SEO 스크립트 자동 생성이 A·B 탭 양쪽에서 동일하게 작동. 홈페이지 RAG 전병숙 섹션 제거로 브리프 오추출 버그 수정.
12. web-crawler-rag (pipelines/web_crawler_rag.py)
목적
SEO 초안 생성 전 경쟁 콘텐츠를 자동 수집해 RAG로 만들어 컨텍스트에 활용. googlesearch 라이브러리 deprecated 문제와 언론기사·예스24 실제 URL 미수집 해결.
내용
DuckDuckGo(ddgs) 기반 검색 → 실제 URL 크롤링 → 본문 추출 → content.md 저장. crawled 폴더 명명 규칙(주제__키워드__YYYYMMDD) 확립. brief-builder 임시 결과물, 단순 페이지 크롤 7개 삭제. RAG_MAP.md(tree+요약표+명명규칙) 신규 생성.
결과
언론기사·예스24 실제 URL 수집 확인. Step 2 조사→content.md 자동 생성. crawled RAG 8종 MECE 드롭다운 구성. topic 기반 상위 15청크 추출(코사인 유사도). “자비출판 비용” 실증 테스트: 페스트북사이트 0.548 정확 검색 확인.
13. youtube-shorts-auto (pipelines/youtube_shorts.py)
목적
YouTube Shorts 브리프를 매번 수동으로 작성하는 시간 낭비 제거. customer-keyword-finder의 페인포인트 데이터를 자동으로 Shorts 브리프로 전환해 대표님은 검토·수정만 하면 되는 구조.
내용
월·수·금 15:00 크론 자동 실행. keyword report top 페인포인트 → Claude + festbook RAG → shorts_brief.json 자동 생성. 사용한 lead 자동 스킵(used_leads.json). status: pending_review로 저장 → Telegram 알림. 대시보드 쇼츠 탭 자동 생성 브리프 섹션에서 검토·수정·즉시 생성 가능.
결과
실제 테스트 통과. 브리프 생성 + Telegram 발송 확인. YouTube 업로드는 수동 업로드 유지. 크론→브리프→대시보드 검토→렌더링 흐름 완성. Canva CSV 내보내기로 Canva Bulk Create 연동 루트 분기 등록.
14. mkt-inspiration (pipelines/mkt_inspiration.py)
목적
마케팅 인스피레이션 이메일을 수신 후 RAG 컨텍스트 없이 답변하면 페스트북 브랜드 톤과 동떨어진 아이디어가 나오는 문제. 수신→RAG 결합→발송 자동화.
내용
creative@ 수신 이메일 읽기 → festbook RAG + 마작가 블로그 RAG 컨텍스트 결합 → 페스트북 마케팅 아이디어 생성 → voice@festbook.co.kr 발송. GIGO 문제는 필터가 아닌 프롬프트 컨텍스트로 해결하는 설계 원칙 채택. 이모지 제거 적용.
결과
creative@ 읽기 → 마케팅 아이디어 → voice@ 발송 자동화 완성. RAG 기반 페스트북 브랜드 톤 자동 적용. 수신거부 안내·금지 문구 8개 규칙 자동 준수. 매일 자동 실행 또는 수동 트리거 양쪽 지원.
15. nlm-research (projects/nlm-research/research.py)
목적
SEO·GEO 콘텐츠 생성 전 리서치 단계를 NotebookLM에 위임해 깊이 있는 배경 지식을 자동으로 확보. YouTube·웹기사·RAG HTML을 한 번에 적재.
내용
sources 구조(YouTube 20개 / 웹기사 최근5+에버그린5 / RAG HTML 10개). connectors(festy_chief·festy_moviemaker 연동). install.sh + nlm login 설치 자동화. nlm CLI 정확 명령 구조(notebook create → add url/text → report/slides/mindmap). 대시보드 리서치 탭 추가 + festy-chief B탭 리서치 결과 불러오기 연결.
결과
맥북·아이맥 양쪽 설치 완료(creative@festbook.co.kr). 대시보드에서 리서치 결과를 SEO 브리프에 직접 연결하는 흐름 구현. e2e 테스트 진행 중(자비출판 비용 실행). NotebookLM 리포트·슬라이드·마인드맵 3종 출력 지원.
최근작업 15개
1. openclaw-gateway 완전제거 (2026-04-19)
목적
Activity Monitor에서 openclaw-gateway가 1.16GB 메모리를 점유 중임을 발견. festy-brain과 무관한 구 서비스가 CPU와 메모리를 낭비하고 있어 즉시 제거 필요.
내용
launchctl unload 명령으로 LaunchAgent 등록 해제 후 plist 파일 삭제. 단순 kill만으로는 KeepAlive: true 설정 때문에 재시작되는 구조여서 launchd 등록 자체를 제거하는 방식으로 접근. 포트 18789도 함께 해제.
결과
1.16GB 메모리 완전 회수. 재부팅 후에도 프로세스 재시작 없음 확인. festy-brain의 pm2 서비스(대시보드·채팅·봇)에 영향 없이 정상 작동 유지.
2. Festy Concierge 재설계 Phase A~D (2026-04-19)
목적
전임 AI가 남긴 CTO 인계 보고서에서 5개 미해결 과제 발견. 보안 게이트 0 상태(HOOK_BYPASS+SAFE_TOOLS에 Bash 포함)에서 prompt injection 시 rm -rf / 실행 가능한 위험 구조였고, 과도한 승인 팝업과 느린 응답도 문제.
내용
Phase A — preflight.py 의존성 검증, max_restarts 20→5, 모델 4-5→4-6 업그레이드. Phase B — approval_hook.py 전면 재작성. SAFE_TOOLS 읽기 전용 한정, 15개 destructive regex 차단, 경로 allowlist 외 Edit/Write deny, fail-closed 전환. Phase C — readline timeout 120초 신설, 첫 토큰 지연 latency_ms 측정·UI 표시. Phase D — 멀티라인 입력(text_area), 도구 출력 CLI 스타일 구조화, 세션 검색, 상태바(모델/토큰/비용/지연), 승인 모달, 파일 업로드 6종 UX 개선.
결과
스모크 테스트 7/7(보안) + 5/5(승인 제거 후) 통과. rm -rf deny, fork bomb deny, curl|sh deny 모두 차단. 일반 Bash는 자동 allow로 승인 팝업 기본 미표시. 대시보드에서 CLI와 동일한 작업 경험 구현.
3. Concierge 승인팝업제거 (2026-04-19)
목적
Phase D 직후 대표님 피드백 “승인 모달이 매번 뜬다. CLI 대등 목표에 반한다.” Bash 비파괴 동작까지 매번 팝업이 뜨는 것은 UX를 오히려 저해하는 상황.
내용
approval_hook.py에서 _ask_server 호출 경로를 완전 제거. 자동 결정 방식으로 전환. Bash는 destructive regex 매치 시 deny, 그 외 모두 allow. Edit/Write는 경로 allowlist 기준 유지. Agent/Skill 등 기타 도구 전부 allow로 변경.
결과
일상적 Bash 실행 시 승인 팝업 미표시. 진짜 위험(rm -rf, sudo 등)만 자동 deny. 스모크 테스트 5/5 통과. CLI에서 작업하는 것과 동일한 흐름으로 대시보드 사용 가능.
4. Rate Limit 실측히트 & 하드캡도입 (2026-04-19)
목적
오후 17:44 실제 Anthropic rate limit 도달. 기존 ccquota가 역대 최고치 기반 추정치를 사용해 실제 차단 시점과 표시 수치 간 괴리가 있던 문제 해결 필요.
내용
차단 순간 스냅샷(Opus 519/5h, Sonnet 1041/5h, 토큰 16.4M Opus-eq, 실비 $312)을 ccquota_hard_cap.json에 저장. _load_hard_cap() 함수로 이 값을 BUDGET으로 직접 사용. 히스토리 기반 추정은 hard cap 없을 때 fallback으로만 활용. 시간대별 사용 패턴 분석(총 2,099 프롬프트, 하루 실비 $599.47) 기록.
결과
ccquota –short가 실차단 기준으로 “잔여 0%”를 정확히 표시. 역대 peak와 실제 한도의 차이(599 vs 519) 구조적으로 해결. 오전·저녁 분산 사용 전략 수립 근거 마련.
5. ccquota 하이브리드재설계 (2026-04-19)
목적
기존 ccquota가 프롬프트 수 고정 BUDGET(Opus 225)을 기준으로 삼아 실제 사용량이 225를 넘어도(115~132%) 경고 없이 작동. 수치가 의사결정 도구로 쓸모없는 상태.
내용
프롬프트 수 + 토큰 합계를 동시 추적하는 하이브리드 설계 채택. 전체 jsonl 히스토리 스캔으로 동적 BUDGET 산출(5h 슬라이딩 최대치×버퍼). 버퍼 프롬프트 1.05, 토큰 1.30(서버 표류 ±20% 감안). 실비($) 섹션 추가(Anthropic 공개 단가 적용). 6h TTL 캐시 파일(ccquota_ceiling.json). 1h 인라인 예측 추가.
결과
병목(Opus/Sonnet/Tok 중 최소) 맨 앞 표시, 모델별 1h 예측 인라인. 역대 최대치(Opus 599/5h, 토큰 19.7M) 자동 기록. 하루 실비 환산 $365→Max 구독 대비 ROI 수치화. iCloud 동기화로 맥북·아이맥 동일 수치 공유.
6. 자동부기 202508 포맷이관 — 반복실수방지체크리스트 (2026-04-19)
목적
자동 부기 구현 중 대표님이 지적한 실수(대시보드 하드코딩, 수식 시프트 누락, 서식 미보존 등)가 반복되어, 다음 세션에서 동일한 실수를 방지하기 위한 체계 정비.
내용
A. 대시보드 H240 동적 위치(하드코딩 금지, 거래 마지막 행+buffer 기준). B. 새 거래 추가 시 insertDimension으로 대시보드 자동 밀기. C. H240 서식 9개 열 규칙(Bold·천단위 쉼표) 보존. D. 월말 잔액 파싱 chat.db 직접 읽기(iMac SSH 우선). E. G열 개인/법인 분류 공란 금지. F. 피벗 F열 13카테고리 매핑. G. 묶인돈 O열 5개 구성 41,500,000원 수식. H. 월별 Rollover 규칙. I. 탭 명명 {YYYYMM}_fesy 규칙. 9개 항목 PROJECT_LOG에 영구 기록.
결과
재발 방지 체크리스트 9개 항목 확정 기록. 202508 교차 검증(SMS 추출값 = H77 일치) 확인. 연결 플랜 Downloads_Synced/자동부기_202508포맷_구현플랜_0418.md 저장.
7. 자동부기 202508 재무대시보드포맷이관플랜확정 (2026-04-18)
목적
현재 _fesy 탭이 단순 부기에만 머물러 재무 전략 판단에 쓰이지 않는 문제. 대표님이 수기로 관리해온 202508 탭의 25개월 자산 히스토리·벤치마크·차트 구조를 자동 생성으로 전환.
내용
A안(재무 대시보드 전면 자동화) 채택. H77:V121 영역 구조 분석 후 H240:V284로 수식 +163 시프트 계획 수립. 5계좌 잔액·순자산·대출제외 순현금·가용 파생지표 자동 계산. Rollover(매월 1일 한 줄씩 아래) + 서식 복제(PASTE_FORMAT) 자동화. TEST_202604_enhanced_v2 탭(sheetId 994899576)에서 검증.
결과
구현 플랜 Downloads_Synced/자동부기_202508포맷_구현플랜_0418.md 확정 저장. H240 서식(Bold K·P·Q·R열, 천단위 쉼표) 대표님 직접 지정 완료. 다음 단계는 sms_accounting 파이프라인에 대시보드 경계 인식 + insertDimension 로직 추가.
8. SMS 자동기장반복실수근본원인발견 (2026-04-18 밤)
목적
FDA 오류가 이틀 연속 재발(python3→python3.14 경로 교체 후에도 유사 문제 반복). 대표님의 “이거 반복되는 실수였어. 다시는 이런 일 발생 안 하도록 구조를 짜” 지시에 따라 임시방편이 아닌 구조적 해결책 마련.
내용
반복 실수 패턴 분석: 1) TCC.db 직접 수정이 macOS 업데이트 시 초기화될 수 있음. 2) 심볼릭 링크 vs 실제 바이너리 경로 혼동. 3) –doctor 플래그 없어 진단 불가. 구조 설계: 매일 실행 전 권한 자가진단 + 실패 시 1일 1통 경고 메일(폭탄 차단).
결과
–doctor 5/5 통과 구조 확립. 권한 재발 시 메일 폭탄이 아닌 진단 메일 1통만 발송. 구조적 재발 방지 체계 완성. 이후 정상 실행 22:25 확인(새 거래 없음 메일 1통).
9. SMS 자동기장 launchd 영구해결 (2026-04-18)
목적
launchd가 실행하는 Python 바이너리에 macOS Full Disk Access 권한이 없어 chat.db 접근 불가. 매일 오류 이메일이 발송되던 문제를 근본적으로 해결.
내용
python3.14 실제 바이너리 경로에 kTCCServiceSystemPolicyAllFiles auth_value=2 직접 INSERT. –doctor 옵션 신설로 5개 항목(DB접근·파서·계좌매핑·이메일·시트API) 자가진단 가능하게 구조화. 1일 1통 메일 상한 설정으로 오류 폭탄 차단.
결과
22:25:09 정상 실행 → “새 거래 없음” 메일 1통만 발송 확인. –doctor 5/5 통과. 이후 권한 문제 재발 시에도 진단 명령 1회로 즉시 원인 파악 가능한 구조 완성.
10. author·작품소개블로그writing표준템플릿제정 (2026-04-18)
목적
작가·작품 소개 블로그 글마다 구조와 품질이 달라 SEO 효과가 불안정하고, 소스 수집 누락·Schema.org 미적용 등 반복 실수 발생. 표준화 필요.
내용
14개 섹션 구조 확정(Hero→Cover→Hook→왜이책→책소개→디자인이야기→작가의말→만든이→집필비하인드→인터뷰→미리보기PDF→Press→독자후기→FAQ+CTA+Promo). 소스 수집 경로 5종(작가 페이지·기사·Gmail Label_25·로컬 Contents_Working·Drive 제안서) 의무화. Schema.org 7종(Article+Book+Person+Organization+FAQPage+Review+Breadcrumb) 포함 의무. 적용 범위 제한(일반 SEO·에세이 제외).
결과
rag/festbook-author-book-template.md 확정. Claude 메모리에 적용 규칙 저장. 기준 사례 전종채 《비어 있거든, 사랑으로 채워라》 WP #39971 확정. 이후 작가 소개 요청 시 무조건 이 템플릿 먼저 로드하도록 프로토콜 적용.
11. 신규strategy문서 2건 RAG 임베딩 + 가드레일확장 (2026-04-18)
목적
B2B 기업 솔루션 전략 등 신규 전략 문서가 RAG에 미반영되어 콘텐츠·이메일 생성 시 최신 전략이 반영되지 않는 문제. 가드레일도 신규 문서에 맞춰 확장 필요.
내용
Downloads_Synced/페스트북 기업 솔루션 전략.md 등 2건을 rag/festbook-strategy-rag/ 복사 후 rag_update.py 실행. 10개 청크 신규 임베딩. RAG 가드레일(환각 방지 규칙·출처 표시 의무·미확인 수치 차단) 신규 문서 범위로 확장.
결과
festbook_rag_index.json 2,005→2,015청크로 확장. B2B 전략 컨텍스트가 이후 콘텐츠 생성·이메일 초안에 자동 반영. RAG_MAP 미확인 후 content.md 임의 수정 실수 발생→즉시 복원. “RAG 작업 전 RAG_MAP 필수 확인” 원칙 메모리에 저장.
12. festy-marketer RAG 인덱스 P0 최적화 + 가드레일설계 (2026-04-17)
목적
festy-marketer RAG 인덱스가 청크 크기·임베딩 방식 최적화 없이 빌드되어 검색 정확도가 낮고, 출처 불명 환각 답변이 발생하는 P0 이슈 해결.
내용
청크 1,000자(기존 500자)로 재빌드. JSONL 스트리밍 저장 + 재개 기능(done_urls 기반). chunk_text() 무한루프 버그(start 역행) 수정 → advance = max(actual_len-overlap, chunk_size//2) 고정 전진. 가드레일 설계: D(출처 표시 의무) + E(자동 필터링) + G(수치 교차검증) 항목 정의.
결과
RAG 재빌드 완료(623개 청크, 25.1MB). 검색 정확도 개선 확인. 가드레일 D+E+G 다음 세션에 즉시 적용 가능한 설계 문서 완성.
13. RAG 가드레일 D+1 / E-auto / G 적용 (2026-04-17)
목적
전날 설계한 가드레일을 실제 코드에 적용. 환각 방지·출처 표시·수치 교차검증이 파이프라인 레벨에서 자동 작동하도록 구조화.
내용
D+1 — 검색 결과 상위 15청크에 출처 파일명 자동 태깅. E-auto — 쿼리와 무관한 청크(코사인 유사도 0.3 이하) 자동 필터링. G — 수치 포함 청크는 원본 파일 교차 확인 후 사용하도록 프롬프트에 명시적 지시 추가.
결과
3개 가드레일 파이프라인 적용 완료. “자비출판 비용” 쿼리 테스트 → 페스트북사이트 0.548 / 마작가블로그 0.460 / 이메일 0.480 정확 검색 확인. 환각 발생 가능성 구조적으로 차단.
14. 구글광고strategy대화 RAG 추가 (2026-04-17)
목적
대표님과 festy.ai 간 구글 광고 전략 대화 기록이 RAG에 미반영 상태. 실전 광고 전략·인사이트가 콘텐츠·이메일 생성에 활용되지 않는 문제 해결.
내용
Downloads_Synced/구글광고전략_대화_202604.rtfd 원본 정독 후 v3 요약 작성. 핵심 인사이트(타겟 세그먼트·입찰 전략·랜딩 최적화 포인트) 구조화. rag/festbook-strategy-rag/ 경로로 이동 후 rag_update.py 실행, 임베딩 완료.
결과
구글 광고 전략 컨텍스트 RAG 검색 가능. 이후 광고·마케팅 관련 콘텐츠 생성 시 실전 전략 자동 반영. “AI 대화 자체가 가장 밀도 높은 전략 소스” 원칙 재확인 및 메모리 저장.
15. Google Ads 전환시간 Sheet2 기록 (2026-04-17)
목적
Sheet1에 수집된 Gclid 426개의 전환 타임스탬프가 Sheet2에 미기록. 광고 전환 시간 분석과 ROI 측정을 위한 데이터 정합성 확보 필요.
내용
Sheet1 Gclid 426개를 CSV(2026-04-17.csv) col F와 매칭. 401건 매칭 성공. Sheet2 A열=Gclid, C열=타임스탬프(UTC+0900 적용) 기록. Sheet1 D열(Conversion Value) → Sheet2 F열 추가 업데이트 예정.
결과
401/426건(94.1%) 매칭 완료. 전환 시간대 분포 데이터 확보. Sheet2 구조(Gclid·타임스탬프·전환가치) 확립. Google Ads 성과 분석 기반 데이터 레이어 완성.

