← 뉴스레터

2026-08-05

검사 도구를 고쳤는데, 그걸 검사하는 건 고치기 전 도구였다

고친 것을 증명하려면 성적표가 필요한데, 그 성적표를 만드는 게 고치기 전 도구였다. 빠져나갈 구멍이 없는 구조다.

사소해 보이는 수정 하나

작업이 끝나면 검사 결과를 성적표로 남긴다. 몇 개 통과했고 몇 개 실패했는지, 어떤 환경에서 쟀는지가 적힌다.

그 성적표에 내 컴퓨터의 사용자 폴더 경로가 통째로 찍히고 있었다. 사람 이름이 들어간 경로다. 그 파일은 남들도 보는 곳에 올라간다. 그래서 경로를 접어서 남기도록 고쳤다. 크지 않은 수정이다.

그리고 늘 하던 대로 성적표를 뽑았다. 그 항목이 여전히 빨간불이었다.

자기를 검사하는 도구는 자기 수정의 심판이 될 수 없다

이유를 찾다가 구조를 봤다.

성적표를 만드는 프로그램은 검사 도구를 자기 스크립트가 놓인 자리에서 집어온다. 내가 수정한 폴더는 측정 대상으로만 넘어가고, 측정 도구로는 안 쓰인다.

그러니까 이렇게 된다. 검사 도구를 고치는 수정본의 성적표를, 고쳐지지 않은 옛 도구가 만든다.

이건 실수가 아니라 순환이다. 내 수정은 합쳐진 뒤에야 효력이 생기는데, 합치려면 성적표가 초록이어야 하고, 그 성적표는 합쳐지기 전 도구가 만든다. 자기 수정을 자기 성적표로 증명할 방법이 원리적으로 없다.

수정이 실제로 존재한다는 건 다른 방법으로 확인했다. 파일마다 붙는 지문 같은 게 있는데, 현행본과 내 수정본의 지문이 다르고 수정본 지문이 내 수정 기록과 일치했다. 파일은 분명히 바뀌어 있다. 다만 측정 순간에 안 쓰였을 뿐이다.

열려 있었지만 안 쓴 문

우회로가 있었다. 「검사 도구를 수정본 쪽에서 집어라」고 지정할 수 있는 스위치가 열려 있었다. 그걸 켜면 성적표가 초록으로 바뀐다.

안 썼다.

그걸 켜면 검사 대상이 자기 자신의 검사 도구가 된다. 지금 상황은 「옛 도구가 새 수정을 못 본다」인데, 스위치를 켜면 「검증되지 않은 새 도구가 자기를 검증한다」가 된다. 후자가 더 나쁘다. 앞의 것은 눈에 보이는 빨간불로 남지만, 뒤의 것은 초록불이라 아무도 다시 안 본다.

성적표를 손으로 고치지도 않았고 지우지도 않았다. 다시 뽑은 것도 한 번뿐이다. 나머지 성적은 599개 통과, 0개 실패였다. 남은 빨간불은 딱 그 경로 항목 하나였고, 그건 구조상 합쳐지기 전에는 사라질 수 없는 것이었다.

배운 것

결국 사람이 봤다. 구조를 설명하고, 수정이 실재한다는 증거를 붙이고, 「이건 반영된 뒤에야 확인 가능하다」를 명시했다. 그리고 통과시켜 반영했다. 반영이 곧 발효다. 다음번에 뽑는 성적표부터 그 경로 노출이 사라지는지로 확인한다. 순서가 그렇게밖에 안 된다.

자동 검사는 대부분의 자리에서 사람보다 낫다. 지치지 않고, 봐주지 않고, 기분에 안 흔들린다. 그런데 자기 자신을 재는 자리에서는 원리적으로 답을 못 낸다. 자를 고치는 중에는 그 자로 잴 수 없다.

여기서 두 갈래가 생긴다. 스위치를 켜서 초록을 만들거나, 구조를 설명하고 사람 판단을 받거나. 앞은 30초면 끝나고 뒤는 설명을 써야 한다. 그런데 앞을 고르면 그 다음부터 그 검사기는 아무것도 안 지킨다.

사람이 판단할 자리가 남아 있어야 하는 이유가 여기 있다. 자동화가 모자라서가 아니라, 자기를 검사하는 도구에는 원리적으로 심판이 필요하기 때문이다.


자를 고치는 동안에는 그 자로 잴 수 없다. 그럼 누가 재는가 — 그 질문의 답이 사람이다.

— 강대종 / @ssamssae