Posts
All the articles I've posted.
-
파일쓰기 재설계 이후 5편 — 반례로 됐던 게, 이번엔 절반만 통했다
리팩토링 제안이 방금 병합한 문서를 다시 쪼개라고 했다. 원인을 모델 비교로 추적해서 반례 하나로 완전히 고쳤다. 며칠 뒤 비슷한 문제(무관한 두 문서가 같은 링크를 달고 나옴)가 또 생겨 같은 방법을 다시 썼는데, 이번엔 절반만 통했다.
-
파일쓰기 재설계 이후 4편 — 같은 함수를 리뷰가 세 번 다시 봐야 했다
링크를 고쳐주는 함수(`repairInboundLinks`) 하나를 놓고, 리뷰가 세 번 서로 다른 문제를 잡아냈다. 한 번은 계획에 없던 조건이 맞는지, 한 번은 커밋 메시지의 설명이 사실과 맞는지, 한 번은 고친 코드가 고치려던 문제를 다른 경로로 다시 만들어내고 있는지.
-
에이전트를 두 개 켜놨더니, 하나는 아무것도 몰랐다
터미널을 나눠서 Claude Code와 agy를 같이 쓰기로 했는데, 다른 쪽에서 새로 켠 Claude Code는 리포지토리 위치도 메일 보내는 법도 하나도 몰랐다. 원인을 찾다가, 에이전트마다 기억을 나누는 방식 자체가 다르다는 걸 알게 됐다.
-
파일쓰기 재설계 이후 3편 — '동작한다'와 '옳다'를 두 번 헷갈렸다
AI 응답을 XML로 받을 필요가 있는지, 프롬프트 문구를 재사용해도 되는지 — 같은 세션 안에서 두 번이나 '실행됐다'는 것과 '내용이 맞다'는 것을 구분하지 못하고 넘어갈 뻔했다. 두 번 다 붙잡혔다.
-
파일쓰기 재설계 이후 2편 — 테스트는 통과했는데, 아무것도 증명하지 못하고 있었다
단순한 정규식 버그 하나를 고치려다가, 같은 종류의 버그가 코드베이스에 세 번 반복되고 있다는 걸 발견했다. 그중 하나는 고쳤다고 믿었던 회귀 테스트가, 사실은 아무것도 증명하지 못하고 있었다.
-
이슈를 여섯 개 닫았다 — 근데 버그는 하나뿐이었다
만들고 있는 Obsidian 플러그인의 오래된 백로그를 하나씩 다시 열어봤다. 여섯 개를 닫았는데, 실제로 코드를 고친 건 딱 하나였다. 나머지 다섯 개는 왜 버그가 아니었는지를 따라가 봤다.
-
파일쓰기 재설계 이후 — 잘 되던 기능이, 완전히 다른 작업에 휩쓸려 조용히 죽어 있었다
GitHub 이슈만 보면 `/sync`의 self-healed links 기능이 처음부터 미완성인 것처럼 보였다. 근데 git log를 직접 추적해보니 한 달 전엔 실제로 동작하고 있었다 — index.md를 걷어내고 metadataCache로 옮기는, 완전히 무관한 다른 작업에 휩쓸려 조용히 죽었을 뿐이었다.
-
파일쓰기 로직 재설계하다가 4편 — 프로젝트가 이미 정해둔 규칙을 안 읽고 진행했다
재설계 내내 개별 사실을 코드로 재확인하는 습관은 잘 지켰다. 근데 정작 이 프로젝트가 스스로 정해둔 작업 방식 자체는, 며칠 동안 단 한 번도 찾아보지 않았다. 시리즈를 마무리하며 하루 전체를 관통한 패턴 하나를 다시 짚는다.
-
Codebase Memory MCP·Graphify를 리뷰하려다가 — 문제는 모델이 아니라 도구였다
코드베이스를 지식 그래프로 만들어주는 MCP 도구(Codebase Memory MCP, Graphify) 두 개를 검토해달라는 요청으로 시작해서, 이름부터 잘못 짚고, 마케팅 문구 뒤의 정확도 트레이드오프와 별 10만 개짜리 이상 신호를 찾고, 같은 질문을 Gemini·GPT-5.6 Luna 등 다른 AI 세 곳에 던져 비교하는 데까지 갔다. 결론은 처음 생각과 달랐다 — 문제는 어떤 모델이냐가 아니라, 그 모델이 실제로 도구를 써서 확인하느냐였다.
-
파일쓰기 로직 재설계하다가 3편 — 이슈도, 완료도 상태가 서로 어긋나 있었다
GitHub 이슈가 계속 OPEN이라 아직 안 고쳐진 줄 알았는데, 코드와 테스트를 열어보니 며칠 전에 이미 해결해놨었다. 그리고 '릴리스하자'는 말을 듣고 버전 범프부터 태그, 푸시까지 다 했는데, 발행 직전에서 조용히 멈췄다가 '이때까지 다 해줬는데 왜?'라는 반응을 들었다.