검수 도구의 아니오를 읽을 때는 질문과 검수 범위를 함께 봐야 한다. 답이 없거나 파일을 끝까지 읽지 못한 상태까지 아니오로 채우면, 확인하지 않은 부분이 문제없는 부분으로 바뀐다.

요청은 대상 코드를 고치지 않고 문제 유무를 예·아니오로 판단하는 검수였다. 안내문과 응답 검사, 파일 집계와 시험 정의를 따라가니, 짧은 답을 내기 전에 어느 파일을 끝까지 읽었는지 확인하는 단계가 있었다.

예·아니오는 불리언으로만 받는다

읽은 구현은 각 질문의 답을 불리언으로 제한한다. 질문 이름과 답의 종류, 질문 수와 응답 수의 대응도 검사한다. 문자열 아니오나 빠진 답을 편의상 거짓으로 해석하는 구조가 아니다. 정해진 형식에 맞지 않으면 정상 검수 결과로 받아들이지 않는다.

이 검사는 응답 형식을 확인하는 장치다. 올바른 불리언이 왔다고 내용까지 맞다는 증거가 생기는 것은 아니다. 특히 문제의 존재를 묻는 질문에서 아니오는 제공한 근거로 그 문제를 확인하지 못했다는 생성 판단이다. 전체 프로그램의 무오류 인증이나 검증된 정확도로 읽지 않는다.

파일 하나를 끝까지 읽어야 집계에 들어갔다

폴더 검수는 지정한 파일을 구간으로 나눠 읽고 각 구간의 시작·끝 행과 원본 해시, 응답을 남긴다. 파일 중간까지 답을 얻었다는 사실과 파일 검수를 마쳤다는 사실은 다르다. 구간 한도에 닿거나 호출이 실패하면 그 파일을 읽기 완료 목록에 넣지 않는다.

파일을 끝까지 읽으면 원본 해시를 대조한다. 전체 보고서를 만들기 직전에는 앞서 마친 파일도 다시 확인한다. 뒤의 파일을 검수하는 동안 앞의 파일이 바뀔 수 있기 때문이다. 완료 목록은 도착한 답의 수가 아니라 끝까지 읽고 변경되지 않은 원본의 목록이다.

전체 진행 상태와 문제 후보는 따로 계산했다

집계는 읽기 완료 목록에 남은 파일의 구간 응답만 모은다. 그리고 질문별로 다음 순서를 적용한다. 아래는 해당 분기를 풀어 쓴 설명이며 실제 실행 영수증이나 새로 실행한 예제가 아니다.

따라서 전체 상태가 partial이어도 다른 파일에서 유효하게 남은 문제 후보가 있다면 그 질문의 답은 예일 수 있다. 예를 지워서 미확인 하나로 덮을 필요는 없다. 반대로 아직 끝내지 못한 파일에서 나온 응답은 집계 대상에서 빠진다. 보수적으로 집계하기 위해 구간 기록과 최종 답의 범위를 다르게 둔 것이다.

  1. 완료 목록에 남은 파일에서 예가 하나라도 있으면 최종 답은 예다. 이는 확인할 문제 후보가 있다는 뜻이며 실제 결함 재현은 별도로 필요하다.
  2. 예가 없고 지정한 모든 파일의 검수가 오류나 한도 중단 없이 끝났으면 최종 답은 아니오다.
  3. 예가 없지만 범위를 끝내지 못했다면 최종 답은 미확인이다. 답의 내부 값도 거짓 대신 null로 남긴다.

원본 변경은 옛 답의 적용 범위를 바꿨다

검수 뒤 원본이 달라졌다면 그 파일은 최종 완료 목록에서 빠지고 변경 오류가 남는다. 집계도 그 파일의 응답을 제외한다. 옛 응답이 보고서의 구간 기록에 있다는 이유로 현재 코드의 아니오를 뒷받침하게 하지 않았다.

이는 과거 검토를 없애는 규칙이 아니다. 어느 버전에서 어떤 답이 나왔는지는 기록에 남고, 현재 버전에 적용할 수 있는지는 별도로 제한된다. 같은 경로와 행 번호를 가졌다는 이유만으로 답을 물려주면 수정된 코드에 옛 검수 결과를 붙이게 된다. 변경을 확인한 뒤 필요한 범위를 다시 정하는 일은 후속 검토의 책임이다.

답과 미완료 이유를 함께 넘긴다

선택한 구현은 호출 시도 수와 정상 반환을 받은 수를 구분한다. 호출 전에 시도 수를 올리고, 유효한 결과가 반환된 뒤 완료 수를 올린다. 중단이나 연결 오류 뒤 두 값이 다를 수 있다. 결과를 받지 못했다는 사실만으로 원격 요청이 전혀 시작되지 않았다고 단정할 수는 없다.

읽은 연결 실패·취소 분기는 오류를 남기고 중단하며 같은 요청을 자동으로 보내지 않는다. 간단한 CLI 출력에서는 질문별 답만 보이지만 상세 결과에는 진행 상태, 완료 파일과 구간, 오류가 남는다. 다음 담당자는 답 한 줄과 함께 이 기록을 받아야 미완료 이유를 확인할 수 있다. 지금 글을 쓰며 해당 CLI나 외부 모델 호출을 실행한 것은 아니다.

보고서의 completed는 지정한 소스 범위의 처리가 끝났다는 상태다. 실제 화면과 네트워크 전달, 실행 결과를 확인했다는 뜻은 아니다. 답을 넘길 때 이 범위도 함께 적어야 한다.

검사 정의를 읽은 범위까지 기록했다

관련 시험 소스에는 일부 파일만 읽은 경우, 호출 실패와 취소, 검수 중 원본 변경, 뒤 파일을 읽는 동안 앞 파일이 바뀌는 경우가 있다. 시험용 클라이언트가 정해진 응답을 반환하거나 파일 변경을 일으키도록 만든 정의다. 이런 시험은 집계와 보존 규칙을 겨냥하며 실제 모델의 판단 정확도를 측정하지 않는다.

이번 집필에서는 안내문·구현·시험 정의를 정적으로 대조했다. 원래 프로그램을 import하거나 시험을 다시 실행하지 않았고, 실제 검수 서비스의 현재 응답 성공이나 사용 가능 여부도 확인하지 않았다. 따라서 여기에 적은 동작은 읽은 버전의 코드 분기와 시험 의도에 관한 설명이다.

독자가 같은 구조를 적용한다면 질문, 원본 버전과 읽은 범위, 미완료 이유, 최종 답을 함께 남기면 된다. 문제 후보가 있으면 실제 재현으로 이어가고, 미확인이면 필요한 자료나 다음 검토 범위를 정한다. 짧은 예·아니오를 유지하더라도 그 답을 사용할 조건은 기록에서 빠지지 않아야 한다.