만든 도구진행 중

감지기

죽음을 감지하려고 만든 것이 먼저 오탐을 냈습니다. 그리고 첫 완주는 아무것도 안 바꿨습니다.

오탐 1회

계획의 절반을 지우고 넷을 남겼는데, 그중 «새로 만든 건 하나»뿐입니다. 그리고 그게 만들자마자 오탐을 냈습니다.

남긴 넷 중 새것은 하나

남긴 것 새로 만들었나
목차는 항상 싣고 본문은 필요할 때 부르기 이미 있던 것
작업 끝에 가공 없이 붙이기 이미 있던 것
주 1회 사람 승인 통합 이미 있던 것
감지기 이것만 새로

새로 만든 게 하나뿐이라는 게 이 프로젝트에서 제일 좋은 결과입니다. 원래 계획은 훨씬 컸는데, 쪼개고 보니 대부분 이미 있었습니다.

왜 감지기만 새로 만들었나

앞의 장치가 몇 달을 죽어 있을 수 있었던 이유는 하나였습니다.

결과물이 없어도 아무 일도 안 일어났습니다.

없으면 없는 대로 조용합니다. 그래서 없는 걸 알려 주는 것만 새로 필요했습니다.

나머지는 이미 돌고 있었습니다. 빠진 건 「돌고 있나 확인하는 눈」 하나였습니다.

그리고 만들자마자 오탐을 냈습니다

감지기의 판정 기준을 이렇게 잡았습니다 — 「마지막 통합이 10일 넘었으면 경보.」

만들자마자 경보가 울렸습니다.

확인해 보니 잘못 울린 것이었습니다. 통합은 오래됐는데, 앞단의 «적어 두기»는 멀쩡히 돌고 있었습니다.

잘못 잡은 이유 — 「한 가지만 봤습니다」

통합이 늦은 데는 두 가지 완전히 다른 이유가 있습니다.

통합 지연 적어 두기 실제 상태
있음 0건 진짜 문제 — 재료가 안 들어옴
있음 살아 있음 문제 아님 — 재료는 쌓이는데 정리를 미룬 것

아래쪽은 그냥 제가 바빠서 미룬 것입니다. 재료는 안전하게 쌓여 있습니다. 나중에 하면 됩니다.

「통합이 늦었다」 하나만 보면 둘이 똑같이 보입니다.

그래서 두 값을 같이 보게 고쳤습니다

통합 지연 적어 두기 판정
있음 0건 ⚠ 경보
있음 살아 있음 ℹ 가벼운 권장
없음 — 조용

가운데 줄이 핵심입니다. 경보가 아니라 「권장」입니다. 경보로 두면 자주 울리고, 자주 울리면 사람이 무시합니다. 그러면 진짜 경보도 같이 무시됩니다.

경보는 아껴 써야 합니다. 자주 울리는 경보는 꺼져 있는 것과 같습니다.

그리고 첫 완주는 아무것도 안 바꿨습니다

이 루프를 처음으로 끝까지 돌린 날 — 고칠 게 없었습니다.

목차 어긋남 0건, 빠진 기록 0건. 표시만 갱신하고 끝났습니다.

이걸 적어 두는 이유가 있습니다. 「아무것도 안 바뀐 실행」이 실패가 아니기 때문입니다.

검사 장치는 대개 아무것도 안 나와야 정상입니다. 매번 뭔가 나오면 그게 이상한 것입니다.

그런데 사람 마음은 아무것도 안 나오면 「이거 제대로 도는 거 맞나」가 됩니다. 그래서 첫 완주에서 0건이 나왔다는 사실 자체를 기록해 뒀습니다 — 나중에 「한 번도 안 걸렸으니 고장인가」를 물을 때 답이 되라고요.

여기부터는 자세한 기록입니다

계획의 절반을 지우고 남긴 것이 넷인데, 그중 새로 만든 건 감지기 하나다.

나머지 셋은 이미 있던 것을 정리한 것이다 — 색인은 상시 주입하고 본문은 필요할 때 부르기, 세션 끝에 가공 없이 붙이기, 주 1회 사람 승인 통합. 감지기만 없던 부품이었다.

왜 이것만 새로 만들었나

앞의 장치가 몇 달을 죽어 있을 수 있었던 이유는 하나다. 산출물이 없어도 아무 일도 안 일어났다.

증류기가 안 돌면 본능 파일이 안 생길 뿐이고, 본능 파일이 없어도 세션은 멀쩡히 돈다. 실패에 대가가 없으면 실패가 지속되고, 지속되는 실패는 결국 정상 상태로 보인다.

그래서 감지기의 일은 대가를 만드는 것이다. 아무것도 안 하면 알림이 온다.

감지기가 먼저 오탐을 냈다

만들자마자 감지기가 경보를 울렸다. 판정 기준이 “마지막 통합이 10일 넘음”이었는데, 그동안 캡처는 멀쩡히 돌고 있었다.

통합이 늦은 것과 학습이 멈춘 것은 다르다. 통합은 정리 작업이라 늦어도 정보는 계속 들어오고 있다. 그런데 기준 하나로는 그 둘이 구분이 안 됐다.

그래서 기준을 하나 더 붙였다 — 최근 7일 안에 갱신된 메모리 개수.

통합 지연 캡처 판정
있음 0건 ⚠ 정체
있음 살아 있음 ℹ 가벼운 권장
없음 — 조용

두 축이 다 나빠야 경보를 울린다. 캡처가 살아 있으면 가벼운 권장으로 내린다.

여기서 배운 게 이거다. 감지기의 오탐은 감지기 문제가 아니라 지표 문제였다. “마지막 통합 시각”은 재기 쉬운 값이라 골랐는데, 재기 쉬운 값이 재고 싶은 것과 다른 경우다. 재고 싶었던 건 “학습이 멈췄나”인데, 잰 건 “정리를 했나”였다.

늑대가 안 왔는데 우는 감지기는 한 번만 울어도 다음부터 안 읽힌다. 그게 죽는 것보다 나쁠 수 있다 — 죽은 건 언젠가 들키지만, 무시당하는 건 계속 도는 채로 무용해진다.

첫 완주는 아무것도 안 바꿨다

처음으로 끝까지 돌린 날, 색인 어긋남 0건, 누락 캡처 0건이었다. 고칠 게 없어서 마커만 갱신하고 끝났다.

상시 캡처가 잘 되고 있으면 통합이 no-op인 게 정상이다.

이걸 미리 적어두지 않았으면 “루프가 아무것도 안 한다”고 판단하고 뭔가를 더 만들었을 것이다. 그게 이 프로젝트가 처음에 밟은 함정과 정확히 같은 함정이다 — 아무 일도 안 일어나는 것을 고장으로 읽고, 고치겠다고 부품을 늘리는 것.

그래서 no-op을 기대 결과로 미리 적어 두는 게 설계의 일부다. 성공했을 때 무엇이 보일지를 안 적어 두면, 성공을 실패로 오독한다.