Fable 콘솔 종료 전에 워크플로를 API로 옮긴 순서와 함정
7/7 콘솔 종료 전 콘솔 워크플로를 Fable API로 이관한 순서·실제 함정·비용 로깅 붙이기
고객 문의 1차 분류 자동화: 룰+LLM 하이브리드로 리드타임 3.5시간→50분
전량 자동화로 한 번 데인 뒤 룰이 걷어내고 LLM이 꼬리를 맡고 사람은 위험한 구간만 보는 구조로 바꾼 기록
멀티에이전트 리서치, 넓은 조사만 이기고 좁은 문제는 토큰 6배 낭비
넓은 탐색은 멀티가 이겼고 좁은 문제는 토큰만 6배 태웠다. when-NOT 판단 기준과 실측 수치
Claude Code로 레거시 마이그레이션 PR 40개를 자동으로 돌린 회고
자동 PR로 맡길 수 있던 기계적 치환과, 사람이 막아야 했던 암묵 계약·부수효과·마이그 순서
MCP 툴 23개를 붙이자 무너진 툴 선택 정확도, 라우팅으로 되돌린 기록
노출 툴을 8개에서 23개로 늘렸더니 선택 정확도가 94%에서 71%로 떨어진 실측과 복구 순서
Qdrant 컨테이너가 새벽에 OOM Killed로 죽은 원인과 양자화로 메모리 1/4 줄인 기록
4GB 인스턴스에 8GB 벡터를 욱여넣어 OOM Killed. dmesg 추적, int8 양자화로 메모리 1/4, 재색인 분리까지
사내 위키 MCP 서버를 반나절에 띄웠는데, 정작 코드는 가장 쉬운 부분이었다
MCP 서버 구현 자체는 tool 3개로 끝난다. 실제 난관은 tool description 설계와 stdout 오염이었다.
한국어 RAG에서 임베딩 모델 4개를 갈아끼웠지만 정답은 청킹에 있었다
text-embedding-3-small/large, bge-m3, KURE-v1을 다 돌려도 안 벌어지던 마진이, 헤딩 단위 청킹과 섹션 제목 prepend로 0.41 vs 0.39에서 0.52 vs 0.34로 벌어졌다
LLM API 월 38만원을 9만원대로 줄인 순서: 측정 먼저, 그다음 라우팅·max_tokens·캐싱
비용 새는 곳 4개를 효과 큰 순서로 정리. 범인은 모델 단가가 아니라 디바운스 누락이었다
영수증 OCR 후처리에서 GPT-4o vision과 Gemini 2.0 Flash를 1,200장으로 직접 재본 결과
인쇄체 영수증 1,200장으로 잰 GPT-4o 95% vs Flash 92%, 비용 1/10과 JSON 코드펜스 우회까지
모노레포에서 Cursor와 Claude Code를 역할로 나눠 쓰는 1년치 결론
모노레포에서 컨텍스트를 놓치는 Cursor와 grep으로 훑고 들어가는 Claude Code를 작업 크기로 분리한 운영 기준
에이전트한테 코드를 맡길 때 핵심은 생성이 아니라 검수 루프 (PR 자동리뷰 게이트 셋업기)
에이전트가 짠 코드는 빌드 green인데 런타임에서 터지는 부류가 문제다. 브랜치 PR + 자동리뷰 + 사람 머지 게이트가 실제로 잡은 버그들
한국어 사내 RAG, 임베딩 모델 교체보다 청크 크기를 먼저 손댔어야 했다
임베딩 모델만 며칠 바꾸다 정체됐는데, 청크 크기 축소와 re-ranking 한 단으로 체감 정확도가 더 올랐다
n8n의 Test workflow는 실제 발송을 막아주지 않는다 — 전체 회원 200명에게 메일 나갈 뻔한 기록
노코드 툴의 Test 버튼이 dry-run인 줄 알았는데 Gmail 노드까지 실제로 쏜다. 발송 노드 disabled가 마지막 방어선이었다
토이프로젝트에 결제부터 붙여보니 첫 ₩4,500이 무료 피드백 수십 개보다 정확했다
기능은 2주, 토스 결제 연동은 한 달 걸렸지만 진짜 신호는 결제창에서 나왔다는 기록
이미지 생성 무료 옵션 한 달 비교, 시안은 Pollinations 본작업은 nano-banana로 끊어 쓴 이유
발산·시안은 키 없는 Pollinations, 확정 결과물은 부분편집 되는 nano-banana로 단계를 끊어 쓴 한 달 비교
Make에서 n8n 셀프호스팅으로 옮기다 OOMKilled와 SQLITE_BUSY로 사흘 날린 기록
exit code 137(OOM)과 조용히 누락되던 SQLITE_BUSY를 추적한 과정. 결론은 인스턴스 증설과 Postgres 전환이었다.
AI 코딩 도구 6개월 팀 도입, 도구가 격차를 좁히는 게 아니라 벌렸습니다
Copilot·Cursor·Claude Code를 팀에 깔고 6개월, 진짜 비용은 구독료가 아니라 검수 없이 머지한 코드였다는 결론
응대 챗봇이 프롬프트 인젝션에 system 프롬프트를 토해낸 뒤, 가드를 모델 밖 스키마로 다시 짠 과정
자연어로 자연어를 막는 군비경쟁을 포기하고 출력 스키마 검증으로 차단한 기록. 의심 입력을 다음 세션에 재주입하던 자작 버그까지.
노트북 내장 마이크 회의 녹음, STT 앞에 speech enhance 한 단을 끼우니 받아쓰기가 살아났다
배경 소음에 묻힌 회의 녹음에 Adobe media enhance speech를 전처리로 넣으니 STT 정확도가 올라갔다. 다만 화자 분리 한계는 그대로다.
데모 마켓 시드 이미지를 크롤 대신 생성으로 채워서 라이선스 문제를 통째로 없앴다
카테고리별 샘플 이미지 24장을 어디서 긁느냐는 고민 자체가 틀렸고, 생성으로 채우니 권리관계가 사라졌다
Zapier, Make, n8n을 1년에 걸쳐 순서대로 써보고 정리한 선택 기준
비용 때문에 Zapier→Make→n8n으로 옮겼지만, 실제 선택을 가른 건 가격표가 아니라 팀에 코드 만질 사람이 있느냐였다.
멀티에이전트 핸드오프 핑퐁으로 recursion_limit 25 터뜨린 회고 — 종료조건이 핸드오프 계약에 없었다
사내 운영툴에 "문서 검토 → 정정 → 재검토" 흐름을 LangGraph 멀티에이전트로 짜다가, 데모에선 잘 돌던 그래프가 실데이터 한 건에서 GraphRecursionError 로 죽었다. 추적해보니 토폴로지 문제가 아니라 핸드오프 계약에 종료조건이
에이전트 하네스를 직접 만들며 깨진 곳들: 무한 루프, 무음 400, 토큰 폭주
사내 운영 도구에서 "GitHub 이슈 보고 PR 초안까지 만드는" 작은 에이전트가 필요해서, 프레임워크 없이 LLM 호출 루프를 직접 짰다. Claude Code나 OpenHands 같은 완성된 하네스를 안 쓰고 직접 만든 이유는 단순하다. 우리 도