검사는 통과했는데, 본문이 27자였습니다

2026-09-16

자료를 자동으로 모아 주는 프로그램을 만든 적이 있습니다. 손으로 하나씩 훑기엔 양이 너무 많아서 여러 단계를 거쳐 글을 가져오고 정리하고 저장하는 일까지 사람 손 없이 돌아가게 짰습니다. 다 만들고 나서 검사 단계도 붙였습니다. 형식이 맞는지, 필요한 항목이 다 채워졌는지를 프로그램이 스스로 확인하게 했습니다.

검사는 전부 통과했습니다. 초록불이 쭉 이어졌습니다. 그러니 안심하고 다음 일로 넘어갔습니다.

열어 보니 27자였습니다

며칠 지나 결과물을 하나씩 열어 보다가 이상한 걸 봤습니다. 어떤 글은 원래 본문이 2,265자였는데, 저장된 것은 27자뿐이었습니다. 제목도 있고 형식도 멀쩡했습니다. 검사가 보는 자리들은 다 채워져 있었으니 통과할 만했습니다. 다만 정작 내용이 거의 다 사라진 채였습니다.

바로 다른 글들도 몇 개 더 열어 봤습니다. 전부 다 이렇게 된 건 아니었지만 이런 식으로 줄어든 것이 하나가 아니었습니다. 검사 로그에는 전부 통과라고 찍혀 있는데, 실제로 열어 본 것과는 다른 이야기를 하고 있었습니다.

검사가 본 것은 "칸이 채워져 있는가"였지, "채워진 값이 맞는가"가 아니었습니다. 27자도 어쨌든 빈칸은 아니니, 검사 기준으로는 흠잡을 데가 없었습니다.

검사가 아니라 대조가 잡아냈습니다

이 문제는 검사만으로는 끝까지 안 잡혔습니다. 전에 모아 둔 자료와 하나씩 맞대 보고서야 드러났습니다. 같은 글의 예전 버전과 글자 수를 나란히 놓고 봤을 때 처음으로 27자라는 숫자가 이상하다는 게 보였습니다. 검사만 믿고 있었으면 끝까지 몰랐을 일입니다.

돌아보면 검사를 처음 짤 때부터 "무엇과 비교할 것인가"를 빼놓고 있었습니다. 형식만 보는 검사는 그 형식 안에 진짜 내용이 들어 있는지는 모릅니다. 알고 있는 것을 확인하는 검사였습니다. 모르는 것을 잡아내는 검사는 아니었습니다. 처음 검사를 설계할 때는 이 차이를 몰랐습니다.

그 뒤로 바뀐 것

그 뒤로는 일을 넘길 때 무엇과 대조할지를 함께 넘깁니다. 검사 통과 여부만 보고 끝내지 않고 이전 자료나 원본과 견줘 볼 대상을 미리 정해 둡니다. 그렇게 하지 않으면 초록불인 채로 틀린 것이 쌓입니다. 초록불은 안심할 근거가 아니라, 확인한 항목이 무엇인지 알려 주는 표시일 뿐이었습니다.

검증한 것과 짐작한 것을 같은 목소리로 말하지 않으려는 것도 같은 이유입니다. 확인 못 한 값은 확인 안 함으로 적고 어떻게 확인할지를 같이 남겨 둡니다. 그냥 없음으로 적으면, 나중에 정말 없는 것인지 아직 못 본 것인지 아무도 알아볼 수 없습니다. 27자짜리 본문도 겉으로는 있는 값이었지만 실은 없는 것이나 마찬가지였습니다.

강의에서 AI가 낸 결과를 확인 없이 쓰지 말라고 말씀드릴 때, 저는 이 일을 가장 먼저 떠올립니다. 검사를 통과했다는 말과 맞다는 말은 다른 말이었습니다.