Series: 확신을 실측 앞에 세워봤다
재설계 이후, 그럴듯해 보이는 확신을 실측 앞에 세워본 기록. few-shot 반례의 함정, 정보 밀도 손실, 위키링크 오탐, 근거 없이 만든 RAG 주장, UTF-8 파싱 버그, 태그·링크 실험, reasoning effort와 격리 조건, 임베딩 검색으로 판단력을 보강한 것, 빠진 프롬프트 규칙을 채워도 결과가 같았던 것, 그리고 한 번만 나온 반직관적 주장이 요약에서 사라지는 조건을 대조군으로 갈라낸 것까지.
-
확신을 실측 앞에 세워봤다 1편 — 반례는 어휘만 가르쳤다
Obsidian 플러그인 `/refactor`로 병합된 노트를 다시 돌렸더니, 방금 자기가 합친 걸 다시 쪼개라는 제안이 나왔다. 원인을 찾아보니 프롬프트 반례(few-shot example)가 특정 어휘만 막고 있었다.
-
확신을 실측 앞에 세워봤다 2편 — 하나만 보고 두 번 틀렸다
Obsidian 플러그인 `/ingest`가 만든 요약 노트 몇 개를 봐달라는 부탁을 받고 가설을 세웠다. 세 번째 예시가 그 가설을 확인해주는 것 같았고, 네 번째 예시는 또 다른 가설을 하나 더 만들게 했다. 여섯 번씩 반복해보니 둘 다 틀렸다.
-
확신을 실측 앞에 세워봤다 3편 — 닫은 지 몇 시간 만에, 내가 다시 열었다
Obsidian 플러그인 지침을 고치고, 합성 마커로 재검증하고, 배포하고, 이슈를 닫았다. 그날이 끝나기 전에 그 이슈를 내가 다시 열었다. 그리고 며칠 뒤 실사용 규모를 훨씬 키워 다시 돌려보니, 좋아진 것과 그대로인 것이 섞여 나왔다.
-
확신을 실측 앞에 세워봤다 4편 — 끊어진 링크는 잡아주는데, 안 끊어진 채 엉뚱한 곳을 가리키는 링크는 못 잡았다
Obsidian 플러그인 `/ingest`가 같은 배치 안에서 파일명이 충돌해 리네임되는 경우와, 다른 노트가 원래 이름으로 링크를 거는 경우가 겹치면 어떻게 되는지 오래 미뤄뒀던 이슈였다. 코드를 읽고 '이미 잡아준다'고 확신했는데, 실제로 테스트를 돌려보니 걱정했던 것보다 훨씬 조용한 버그가 있었다.
-
확신을 실측 앞에 세워봤다 5편 — 왜 관련있다고 생각했냐고 물으니, 답을 못했다
Obsidian 플러그인의 RAG(검색 증강 생성) 컨텍스트 조회가 놓친 노트 두 개를 찾아서, 이게 새 기능의 근거라고 보고했다. '왜 관련있다고 생각하냐'는 한 줄 질문에 실제 노트를 열어보고서야, 하나는 근거 없는 추측이었다는 걸 알았다.
-
확신을 실측 앞에 세워봤다 6편 — 실사용에서 못 봤다는 말 한마디가, 가설 두 개를 무너뜨렸다
GPT-5.6 Luna 응답에서 재현율 60~80%까지 측정해둔 UTF-8 인코딩 손상 버그를, 사용자는 한 번도 본 적이 없다고 했다. 떠올린 설명 두 개를 차례로 검증하다가, 이슈 제목과 실제 손상 위치가 다르다는 걸 알게 됐다.
-
확신을 실측 앞에 세워봤다 7편 — 후보 두 개를 따로 넣어보니, 둘 다 효과가 없었다
Obsidian 플러그인 `/ingest`에서 태그가 노트 수보다 두 배 가까이 빠르게 늘어나는 문제도, `/refactor` 분할 시 교차 링크가 안 걸리는 문제도, 코드를 고치기 전에 실제 API로 먼저 확인했다. 두 번째 이슈에서는 후보로 나온 수정 두 개를 따로따로 넣어봤는데, 둘 다 효과가 없었다 — 같이 넣어야만 됐다.
-
확신을 실측 앞에 세워봤다 8편 — 격리할수록 좋아진다는 것도 절반만 맞았다
Obsidian 플러그인 `/refactor`에서, 노트 하나만 있는 카탈로그에서는 92% 성공, 오탐은 0건이었다. 그대로 실전 규모(노트 145개)에 넣었더니 25%로 주저앉았다. reasoning effort(추론 강도)를 올리면 나아질 줄 알았는데, 시도하는 족족 더 나빠졌다.
-
확신을 실측 앞에 세워봤다 9편 — 답은 두 문서 안이 아니라, 밖에 있었다
Obsidian 플러그인 `/refactor`에서 병합(merge) 시점에 개입하는 것도, 판단을 생성 대신 검증으로 바꾸는 것도 안 됐다. 본문 전체를 줘도 모델은 계속 확신에 차서 틀렸다. 문제는 판단력 부족이 아니라 근거 부족 — 그 판단에 필요한 증거가 애초에 그 두 문서 안에 없었다는 것이었다.
-
LLM 병합 프롬프트에서 규칙 하나가 빠진 걸 찾았는데, 채워도 똑같았다
LLM 노트 병합이 한쪽 원문의 내용을 빠뜨리는 버그를 쫓다 병합 프롬프트에만 정보 밀도 보존 규칙이 없는 걸 찾았다. 그런데 넣고 A/B 테스트를 해도 차이가 없었다.