계산의 여러 단계가 끝났는데 마지막 파일을 만드는 작업만 남았다면, 어디서부터 다시 시작해야 할까. KORE Gate-7에서는 이미 저장한 계산을 그대로 둔 채, 그 기록을 확인하고 마지막 출력을 조립하는 실행 절차를 만들었다. 내가 작업을 이끌고 AI의 도움을 받아 구현을 진행했으며, 2026년 7월 14일에는 재계산 없이 최종 조립을 마쳤다.
여기서 마쳤다는 것은 내부 실행 절차다. 최종 출력에 담긴 과학적 결과는 봉인한 상태로 두었고, 이 글에서는 계산 내용 대신 중간 기록을 보존하며 작업을 이어 간 방법을 설명한다.
남은 작업을 먼저 분리했다
긴 계산을 한 덩어리로 실행하면 중간에 멈췄을 때 끝난 부분과 아직 남은 부분을 구분하기 어렵다. Gate-7에서는 작업을 작은 단위로 나누고 완료한 지점을 저장했다. 이런 중간 저장을 체크포인트라고 하며, 여러 단위의 기록을 나누어 담은 파일 조각은 샤드라고 부른다.
마지막 조립을 맡긴 A15 버전에서는 앞선 A14 계산을 다시 시작하지 않도록 범위를 좁혔다. 이미 끝난 과학 계산과 마지막 파일을 만드는 일을 분리하고, 저장된 기록만으로 최종 출력 하나를 구성하게 했다. 남은 것은 계산을 더 하는 일이 아니라, 앞서 얻은 기록이 빠짐없이 같은 상태로 남아 있는지 확인하는 일이었다.
저장된 파일이라고 곧바로 재사용하지 않았다
캐시는 다시 쓸 수 있도록 보관한 작업 결과다. 하지만 파일이 있다는 이유만으로 올바른 캐시라고 볼 수는 없어, 각 조각의 해시와 작업 계획, 파일에 들어 있어야 할 항목의 형식을 확인하도록 했다. 해시는 파일 내용이 달라졌는지 비교하는 값이지, 그 안의 과학적 결론이 옳다는 보증은 아니다.
조립 절차는 필요한 비최종 샤드가 하나라도 없거나 달라지면 중단하도록 설계했다. 앞선 계산의 핵심 코드와 체크포인트를 수정하지 않으며, 계산을 새로 수행하거나 중간 결과를 다시 확정하는 경로도 막는 방식이었다. 조립 함수만 따로 우회 실행하지 않고, 사전에 고정한 실행 경로를 거치게 했다.
재시작도 무조건 반복하도록 두지는 않았다. 시도할 때마다 기존 기록에 새 기록을 덧붙이고, 이미 남은 최종 파일의 상태를 확인하며 이어 가되, 오류 종료가 기록되면 자동으로 다시 시도하지 않는 절차를 정했다. 실패한 시도가 반복 실행 속에 묻히지 않도록 한 선택이다.
진행률과 결과 공개는 다른 상태로 남겼다
상태 화면에는 저장된 계산의 완료 정도, 체크포인트 검사 진행률, 최종 출력의 완료 여부를 따로 표시했다. 파일 검사가 얼마나 진행됐는지와 마지막 조립이 끝났는지를 하나의 숫자로만 읽지 않기 위해서다. 마지막 조립 단계에서는 남은 시간을 믿을 만하게 추정할 처리 속도가 없어, 예상 완료 시간을 임의로 만들지 않고 표시 불가로 두었다.
7월 14일의 종료 기록은 COMPLETED와 정상 종료 코드 0을 남겼으며, 이 조립 단계에서 과학 계산 좌표를 다시 계산한 수는 0이었다. 기존 계산을 재사용하는 최종 조립이 실제로 끝났다는 범위에서 읽을 수 있는 기록이다. 계산 결과의 타당성이나 외부 재현까지 확인했다는 뜻은 아니다.
작업이 끝났어도 결과를 여는 권한은 별도로 남겼다. 최종 출력은 잠긴 상태를 유지했고, 실행 완료를 이유로 과학적 내용을 꺼내 해석하지 않았다. 이 작업에서 남긴 것은 완료한 계산을 보존하고, 남은 조립만 수행하며, 결과 접근은 따로 관리하는 절차다.
