감지기
죽음을 감지하려고 만든 것이 먼저 오탐을 냈습니다. 그리고 첫 완주는 아무것도 안 바꿨습니다.
계획의 절반을 지우고 남긴 것이 넷인데, 그중 새로 만든 건 감지기 하나다.
나머지 셋은 이미 있던 것을 정리한 것이다 — 색인은 상시 주입하고 본문은 필요할 때 부르기, 세션 끝에 가공 없이 붙이기, 주 1회 사람 승인 통합. 감지기만 없던 부품이었다.
왜 이것만 새로 만들었나
앞의 장치가 몇 달을 죽어 있을 수 있었던 이유는 하나다. 산출물이 없어도 아무 일도 안 일어났다.
증류기가 안 돌면 본능 파일이 안 생길 뿐이고, 본능 파일이 없어도 세션은 멀쩡히 돈다. 실패에 대가가 없으면 실패가 지속되고, 지속되는 실패는 결국 정상 상태로 보인다.
그래서 감지기의 일은 대가를 만드는 것이다. 아무것도 안 하면 알림이 온다.
감지기가 먼저 오탐을 냈다
만들자마자 감지기가 경보를 울렸다. 판정 기준이 “마지막 통합이 10일 넘음”이었는데, 그동안 캡처는 멀쩡히 돌고 있었다.
통합이 늦은 것과 학습이 멈춘 것은 다르다. 통합은 정리 작업이라 늦어도 정보는 계속 들어오고 있다. 그런데 기준 하나로는 그 둘이 구분이 안 됐다.
그래서 기준을 하나 더 붙였다 — 최근 7일 안에 갱신된 메모리 개수.
| 통합 지연 | 캡처 | 판정 |
|---|---|---|
| 있음 | 0건 | ⚠ 정체 |
| 있음 | 살아 있음 | ℹ 가벼운 권장 |
| 없음 | — | 조용 |
두 축이 다 나빠야 경보를 울린다. 캡처가 살아 있으면 가벼운 권장으로 내린다.
여기서 배운 게 이거다. 감지기의 오탐은 감지기 문제가 아니라 지표 문제였다. “마지막 통합 시각”은 재기 쉬운 값이라 골랐는데, 재기 쉬운 값이 재고 싶은 것과 다른 경우다. 재고 싶었던 건 “학습이 멈췄나”인데, 잰 건 “정리를 했나”였다.
늑대가 안 왔는데 우는 감지기는 한 번만 울어도 다음부터 안 읽힌다. 그게 죽는 것보다 나쁠 수 있다 — 죽은 건 언젠가 들키지만, 무시당하는 건 계속 도는 채로 무용해진다.
첫 완주는 아무것도 안 바꿨다
처음으로 끝까지 돌린 날, 색인 어긋남 0건, 누락 캡처 0건이었다. 고칠 게 없어서 마커만 갱신하고 끝났다.
상시 캡처가 잘 되고 있으면 통합이 no-op인 게 정상이다.
이걸 미리 적어두지 않았으면 “루프가 아무것도 안 한다”고 판단하고 뭔가를 더 만들었을 것이다. 그게 이 프로젝트가 처음에 밟은 함정과 정확히 같은 함정이다 — 아무 일도 안 일어나는 것을 고장으로 읽고, 고치겠다고 부품을 늘리는 것.
그래서 no-op을 기대 결과로 미리 적어 두는 게 설계의 일부다. 성공했을 때 무엇이 보일지를 안 적어 두면, 성공을 실패로 오독한다.