STARRY PASS 9 — 영수증 산과 세 칸짜리 책갈피
“빨라졌다”는 말보다 같은 산·같은 길·같은 횟수를 먼저 남기는 법
이 이야기는 원문의 월∼토 수행 계약을 이해하기 위한 모형극입니다. 현재 소스로 여섯 단계를 모두 재실행해 Green을 얻었다는 성능 보고가 아니며, 현재·과거 증거의 이음새는 뒤의 질문 노트에서 따로 검사합니다.
STARRY의 낮 공연이 끝나자 계산대 아래에서 하얀 종이 한 장이 미끄러져 나왔다. 히토리가 그것을 주우려는 순간, 뒤이어 십 장과 백 장이 쏟아졌다. 창고 문까지 열리자 바닥에 쌓인 영수증은 작은 산처럼 보였다. 니지카는 가장 위의 한 장을 들어 보지도 않고, 먼저 문을 닫았다.
“왜 닫아요? 손님이 최근 내역 스물… 아니, 오십 장을 달라고 했어요.” 키타가 물었다.
“지금 손대면 우리가 조건을 바꿨는지, 창고가 원래 그랬는지 나중에 구분할 수 없어. 우선 어떤 도구와 어떤 작업 지시서를 쓸지부터 봉인하자.”
료는 다섯 장의 작업 지시서를 투명 봉투에 넣었다. 하나는 전체 작업을 진행하는 지시서였고, 나머지 네 장은 산을 만드는 법, 최근 영수증을 찾는 질문, 세 칸짜리 책갈피를 만드는 법, 산의 숫자가 맞는지 확인하는 법이었다. 각 봉투 겉면에는 긴 손가락 무늬가 하나씩 적혔다.
“다섯 장이 동일한지를 어떻게 기억해요?” 히토리가 봉투를 빛에 비추며 물었다.
“기억하지 않아. 손가락 무늬를 기록해. 한 글자라도 바뀌면 무늬가 달라져야 하고, 측정 후에도 현재 봉투와 대조할 수 있어야 해.” 니지카가 답했다.

창고 입구의 검사대는 그 다섯 무늬와 도구 상자 하나만을 확인했다. 아직 영수증 산을 만들지도, 길을 재지도, 책갈피를 꽂지도 않았다. 히토리가 빈 결과 함을 보고 실망하자 료가 고개를 저었다.
“비어 있어야 성공이야. 준비 단계에서 뒷단계의 성적표가 있으면, 예전 결과를 오늘 것처럼 착각할 수 있어.”
“그럼 지금 확인한 건 도구 상자 하나, 동일한 지시서 다섯 장, 그리고 미래 결과 영 개네요.” 키타가 메모했다.
니지카는 메모 아래에 더 진하게 선을 그었다. ‘준비 성공’은 ‘빨라졌다’는 뜻이 아니었다. 아직 산은 없었고, 질문도 실행되지 않았다. 준비가 확인한 것은 출발선과 재료뿐이었다.
준비표에는 조금 더 까다로운 조건이 있었다. 도구 상자의 호흡 소리가 실제로 들려야 했고, 상자 안의 서비스 이름은 단 하나여야 했다. 다른 서비스가 하나라도 끄나풀처럼 붙으면 멈추고 왜 섞였는지 확인해야 했다. 평소에 쓰던 비밀번호가 없으면 준비 단계에서만 쓸 가짜 표식을 붙여 설정 모양만 확인했다. 실제 영수증 산을 올리기 위한 비밀을 만든 것은 아니었다.
히토리는 결과 함 안의 열 칸을 하나씩 열어 보았다. 책갈피 전 지도, 책갈피 후 지도, 분포 표, 전후 시간표, 마지막 보고서가 모두 없었다. “없다”는 것은 허전했지만, 오늘은 그 허전함이 과거의 종이를 오늘 증거로 잘못 꺼내지 않았다는 표식이었다. 준비표에는 성능 숫자 대신 소스 다섯 장의 이름과 무늬만 남았다.
검사대 옆에는 여섯 칸짜리 바닥 지도가 펼쳐졌다. 첫 칸은 도구와 지시서만 확인했고, 둘째 칸은 책갈피를 꽂기 전의 길, 셋째 칸은 꽂은 뒤의 길을 담당했다. 넷째 칸은 산의 모양, 다섯째 칸은 아직 걸지 않은 길의 경계, 여섯째 칸은 전후 시간표를 맡았다. 각 칸은 자기 일을 끝내고 창고를 통째로 비웠다. 앞 칸의 가구를 다음 칸이 몰래 쓰지 못하게 하려는 규칙이었다.
“매번 산을 다시 만든다고요?” 히토리의 눈이 어두워졌다.
“그래야 셋째 칸이 둘째 칸의 남은 책갈피를 재사용하지 않아. 마지막에는 산과 부속품도 모두 치워야 하고.”
“정리까지 성공해야 결과 표를 남기는 거군요.”
둘째 칸에서는 드디어 영수증 산을 만들었다. 손님 표식은 천 개, 거래 종이는 십만 장, 원장 영수증도 십만 장이었다. 모든 거래는 이미 완료된 것으로 표시되었고, 영수증의 금액은 모두 일이었다. 시각은 정해진 시작점에서 한 초씩 늘어났다. 무작위로 섞지 않았기 때문에 어제 다시 만들어도 오늘과 같은 산이 되었다.
하지만 산은 고르지 않았다. 일 번 손님의 영수증이 구만 장이었다. 나머지 천의 영십구 명이 나머지 일만 장을 나눠 가졌다. 이 규칙은 평균적인 손님을 만들지 않았다. 오히려 한쪽에 압도적으로 쏠린 편향을 고정했다.
“일 번 손님이 전체의 구십 퍼센트예요.” 키타가 손가락으로 산의 절벽을 가리켰다.
“그런데 이걸 보고 인기 손님과 드문 손님의 길을 모두 재 봤다고 말하면 안 돼.” 니지카가 말했다. “이 칸이 직접 확인한 건 정확한 네 숫자와 구십 퍼센트라는 비율이야. 여러 손님을 찾아다니며 길지기의 선택이 달라지는 실험은 하지 않았어.”
공식 영업 준비를 하던 네 사람이 계산대 앞에 다시 모였다. 니지카는 손님의 요청을 한 문장으로 고정했다. 일 번 손님의 영수증을 최신 시각부터 보되, 같은 시각이면 번호가 큰 쪽을 먼저 놓고, 오십 장만 가져온다. 손님 번호, 시각, 영수증 번호, 오십이 한 문장에 모두 남았다.
“왜 시각 뒤에 번호까지 붙여야 해요?” 히토리가 물었다.
“같은 초에 여러 장이 생길 수 있으니까요. 시각만 보면 오십 번째 경계가 흔들려요.” 키타가 대답했다.
“좋아. 우리의 측정 질문은 깊은 몇 번째 묶음으로 이동하는 질문이 아니야. 항상 일 번 손님의 첫 오십 장을 찾는 질문이야.”
키타는 질문 카드의 열 순서를 바꾸어 보며 같은 질문인지 확인했다. 손님 번호를 먼저 거르지 않고 시각만 정렬하면 모든 손님의 영수증이 섞였다. 시각을 오름차순으로 바꾸면 가장 오래된 영수증이 먼저 나왔다. 번호를 빼면 같은 시각에서의 순서 계약이 사라졌다. 오십을 빼면 결과 크기가 한정되지 않았다. 한 줄의 질문은 짧았지만, 그 안의 네 계약 중 하나라도 바뀌면 다른 실험이 됐다.
“결과 영수증이 오십 장이면 길지기가 오십 장만 봤다는 뜻인가요?” 히토리가 물었다.
“꼭 그렇진 않아. 오십 장은 마지막에 나온 결과의 크기야. 그것을 찾기 위해 걸은 길은 길 메모안에 따로 적혀 있어.” 니지카가 답했다. 이 구분 덕분에 결과 행 수와 중간 노드가 읽은 행 수를 혼동하지 않았다.
그들은 책갈피를 꽂기 전에 창고지기에게 길 찾기 메모를 부탁했다. 메모는 단순히 ‘몇 초’만 적지 않았다. 창고지기가 어떤 묶음을 먼저 보았는지, 몇 장을 나올 것으로 예상했는지, 실제로 몇 장을 건넸는지, 준비와 실행에 얼마가 걸렸는지, 이미 손에 들고 있던 종이와 새로 가져온 종이가 얼마인지를 구조화해 남겼다.
료는 예상한 장수와 실제 장수가 같은 말이라고 생각했다. 니지카는 두 칸을 따로 그리게 했다. 예상은 창고지기가 길을 선택하기 전에 생각한 값이고, 실제는 길을 걸은 뒤 나온 값이었다. 둘의 차이는 창고지기가 산의 분포를 얼마나 잘 알았는지를 생각할 단서였다.
료는 길 메모의 맨 위 줄만 보고 “여기에 책갈피라고 써 있지 않으니 책갈피를 안 쓴 거야”라고 말했다. 창고지기는 메모 안의 자식 항목을 펼쳐 보여 주었다. 길의 맨 위에는 ‘오십 장에서 멈춤’이 있었지만, 그 안쪽에 책갈피 이름이 있을 수 있었다. 그때부터 네 사람은 맨 위의 이름 하나로 결론을 내지 않고 tree 안의 길을 따라가 보았다.
히토리는 시간을 비용과 같은 말로 써도 되는지 물었다. 니지카는 창고지기의 예상 비용은 초가 아니라 여러 길을 상대적으로 비교하기 위한 숫자라고 설명했다. 실제 시간은 걸은 뒤에 나오지만, 그 시간도 하나의 순간값만으로 산의 품질을 다 설명하지 못했다. 이 대화가 나중에 서른 번씩 재는 이유가 되었다.

셋째 칸에서 니지카는 창고 본관이 아니라 매번 없애는 실험용 별관에만 세 칸짜리 책갈피를 꽂았다. 첫 칸은 손님 번호였고, 둘째는 시각을 최신순으로 가리켰고, 셋째는 같은 시각일 때 영수증 번호가 큰 쪽을 가리켰다. 질문의 낱말과 책갈피의 낱말이 같은 순서였다.
“본관에 박아 두면 손님도 바로 빠른 길을 쓸 수 있지 않아?” 료가 물었다.
“오늘은 성능 비교의 원인을 하나로 잡아야 해. 공개 창고의 규칙을 바꾸는 날이 아니야. 실험용 별관을 새로 만들고, 같은 산과 같은 질문에서 책갈피 하나만 달라지게 할 거야.”
책갈피를 꽂은 뒤 창고지기의 메모를 다시 받았다. 이번에는 메모 안의 어느 노드인가에 정확한 책갈피 이름이 있어야 했다. 길의 모양은 두 가지만 허용했다. 책갈피 자체를 따라 걸었거나, 책갈피의 정보만으로 요청한 칸을 완성했거나 둘 중 하나였다. 결과가 빨랐다는 사실만으로는 통과할 수 없었다.
네 번째 칸은 복잡한 길 비교를 하지 않았다. 대신 산의 형태를 다시 세었다. 손님 표식 천 개, 거래 종이 십만 장, 원장 영수증 십만 장, 일 번 손님 구만 장이 하나라도 다르면 멈췄다. 모든 계좌의 잔액을 그 계좌 영수증 금액의 합과 비교했고, 다른 것이 하나도 없어야 했다. 책갈피가 정확히 하나 있는지도 보았다.
“그럼 구십 퍼센트가 자연의 법칙이네요?” 키타가 물었다.
“아니. 우리가 만든 이 산의 법칙일 뿐이야. 실제 영업 자료의 분포나 다른 손님 질문의 길은 이 칸에서 재지 않았어.”
쉬는 시간에 니지카는 세 장의 작은 문제 카드를 꺼냈다. 첫 카드는 각 계좌로 들어온 돈과 나간 돈을 따로 합치라고 했다. 두 번째 카드는 고객별로 묶은 뒤 총 거래액이 백만 이상인 묶음을 고르라고 했다. 셋째 카드는 들어온 기록은 있지만 나간 기록은 하나도 없는 계좌를 찾으라고 했다.
“정답은 뒤에 있나요?” 키타가 카드를 뒤집었다.
“없어. 오늘 주어진 건 문제와 통과 계약이야. 어떤 표의 한 행을 입력으로 보는지, 결과의 한 행은 무엇인지, 기록이 영 건인 계좌를 어떻게 다룰지를 먼저 쓰고 풀어야 해.”
히토리는 가장 짧아 보이는 셋째 문제를 골랐다가 쉽지 않다는 걸 깨달았다. 나간 기록이 없는 걸 알아보려면 ‘나간 계좌 목록에 없음’을 보는 대신, 해당 계좌와 맞는 나간 기록이 존재하지 않는지를 직접 물어야 했다. 빈 칸이 섞인 목록은 ‘없다’는 판단을 애매하게 만들 수 있었다. 세 문제는 오늘 할 일이었지만, 정답 종이는 작업 봉투 다섯 장에 포함되지 않았다.
다섯 번째 칸 앞에는 깊은 쪽으로 통하는 두 문이 있었다. 한 문에는 ‘앞의 오만 장을 건너뛰고 시작’이라고 써 있었고, 다른 문에는 ‘마지막으로 본 시각과 번호 뒤에서 시작’이라고 써 있었다. 히토리가 첫 문의 손잡이를 잡자 니지카가 멈춰 세웠다.
“오늘은 두 문을 비교하는 날이 아니야.”
“그럼 왜 문이 있어요?”
“보였다고 걸은 것은 아니라는 걸 기록하려고. 현재 질문에는 앞의 행을 버리라는 표식도, 마지막 위치 뒤를 찾으라는 표식도 없어. 일 번 손님의 최신 오십 장을 바로 가져오는 질문뿐이야.”
료가 두 문 사이에 빨간 끈을 매달았다. 키타는 ‘건너뛰기 비교 안 함’, ‘이어보기 비교 안 함’이라고 두 줄로 적었다. 좋은 설명은 어떤 길이 더 빨라서 바로 추천하는 말이 아니었다. 아직 걸지 않은 길을 지도에서 길 처럼 색칠하지 않는 말이었다.
키타는 얼핏 보면 두 문에 대한 정보가 충분하다고 생각했다. 하지만 직접 비교하려면 두 문은 각각 자기 질문과 시간표를 가져야 했다. 첫 묶음·깊은 묶음·새 영수증이 끼어든 상태를 어떻게 처리할지, 마지막 시각이 같을 때 번호를 어떻게 기억할지, 전후 각 몇 번을 재고 어떤 흔적을 보존할지가 필요했다. 지금 자료에는 그 세트가 없었다.
“이론으로 두 문의 장단점을 설명할 수는 있어.” 료가 말했다.
“맞아. 하지만 이론 설명과 우리가 직접 걸어 얻은 결과를 다른 칸에 써야 해. 오늘 결과 칸은 비어 있어.” 니지카가 두 문에 붙은 빨간 끈을 다시 확인했다.
마지막 칸에서는 같은 산을 한 번 만들고, 책갈피를 꽂기 전 질문을 서른 번, 꽂은 뒤 같은 질문을 서른 번 실행했다. 각 실행은 영수증 오십 장을 실제로 찾아야 했고, 창고지기가 말한 실행 시간을 표에 남겼다. 앞줄 서른 개와 뒷줄 서른 개, 정확히 예순 개의 시간이었다. 예시 시간을 미리 채우지 않았고, 실제 환경의 값을 써야 했다.
검사 규칙은 의외로 조심스러웠다. 가운데 지표와 느린 꼬리 지표가 둘 다 나빠지거나 같으면 멈췄다. 다시 말해, 둘 중 적어도 하나가 좋아지면 현재 규칙은 통과시켰다. 하나가 나아졌더라도 다른 하나가 나빠졌다면 그 나빠짐을 숨기면 안 됐다.
“그럼 ‘모두 더 빨라졌다’고 쓰면 안 되겠네요.” 히토리가 말했다.
“응. 이 산, 이 손님, 이 질문, 이 환경에서 두 지표의 실제 값을 보여 줘야 해. 그것도 절대 시간 약속은 아니고.”
히토리는 개선 규칙을 다시 읽었다. 두 지표가 모두 좋아져야만 통과하는 규칙이 아니었다. 둘 다 같거나 나빠지면 실패였고, 적어도 하나가 좋아지면 현재 규칙은 통과시켰다. 그런데 느린 꼬리가 악화되고 가운데만 좋아져도 통과할 수 있었다. 반대도 가능했다. 성공 벨 하나로 두 지표의 모양을 추측하면 안 됐다.
“성공했다는 표식은 실제 네 숫자를 대신하지 못하네요.” 키타가 전·후 두 지표를 각각 적었다. “둘 중 하나가 나빠졌다면 나빠졌다고 그대로 쓸게요.”
현재 계산기에는 연습용 예열 버튼도 없었다. 첫 번째 측정부터 바로 서른 개 표에 들어갔다. 니지카는 이 사실도 쓰라고 했다. “열 번 연습한 뒤 재서 cache 영향을 통제했다”고 만들어 쓰면, 서른 개의 숫자가 정확해도 실험 설명은 틀리게 되었다.
그런데 초시계를 일부러 일부터 삼십까지 놓고 계산 규칙을 점검하던 중, 히토리가 이상한 것을 발견했다. 현재 계산기는 가운데 지표를 구할 때 열다섯 번째 값 하나를 골랐다. 그런데 벽에 붙은 작업 약속은 짝수 개의 가운데라면 열다섯 번째와 열여섯 번째의 평균을 쓰라고 했다. 그 약속대로면 일부터 삼십의 가운데는 십오점오였다. 현재 계산기가 내는 값 십오와 달랐다.
느린 쪽 구십오 퍼센트 경계는 구체적인 순위 규칙에 따라 이십구가 맞았다. 문제는 가운데였다. 료가 “작은 차이니 그냥 넘어가자”고 하자 니지카는 계산기에 빨간 표식을 붙였다.
“작은 차이가 아니야. 이름과 계산법의 계약이 다른 거야. 지금 자료에서는 십오점오가 나온다고 쓰면 안 돼. 계산기를 고치기 전에는 현재 구현이 십오를 고른다고 적고, 약속과 다르다는 사실도 함께 남겨야 해.”
료는 계산기 설명서에서 구십오 퍼센트 규칙을 따로 찾았다. 서른의 구십오 퍼센트는 이십팔점오 위를 올림한 이십구 번째였고, 살짝 더운 순위의 경계를 그대로 고르는 방식이었다. 이 부분은 벽의 약속과 계산기가 같았다. 니지카는 문제를 ‘통계가 전부 틀렸다’고 크게 부풀리지도, ‘아무 문제 없다’고 줄이지도 않았다. 그녀는 중앙 값 계약 하나가 정확히 충돌한다고 적었다.

밤이 되자 네 사람은 여섯 칸의 계약을 한 장의 보고서로 합치는 장면을 연습하려 했다. 니지카는 그 순간 손을 들어 멈춘다. 하나로 봉인하는 마지막 작업은 다음 칸에 있었고, 그곳은 이야기의 범위가 아니었다. 계약상 토요일이 만들어야 할 마지막 종이는 전후 서른 회, 책갈피 이름, 허용된 길 유형, 정리 완료를 담는 여섯 번째 칸이었다. 이는 현재 같은 무늬로 토요일 종이가 새로 생성됐다는 보고가 아니었다.
그들은 출석부를 현재 봉투들과 대조했다. 첫 번째 준비 봉투의 무늬는 현재 지시서와 같았다. 그런데 둘째부터 여섯째 칸까지 남은 예전 출석부는 오늘 봉투와 다른 손가락 무늬를 가리켰다. 다섯 번째 칸의 ‘두 문은 안 걸었음’ 종이는 현재 출석부에서 아예 찾을 수 없었다. 모형극은 여섯 칸의 약속을 모두 보여 주었지만, 출석부는 오늘 시점의 연속된 완료를 증명하지 못했다.
“연극에서 모두 성공했으니 출석부에도 모두 성공으로 써도 될까요?” 히토리가 조심스럽게 물었다.
“안 돼. 연극은 무슨 순서로 무엇을 확인해야 하는지 보여 준 거야. 실제 출석은 같은 지시서 무늬로 다시 확인해야 해. 그 전에는 현재 연속 Green이라고 쓰지 않아.”
“그럼 최종 보고서가 없으니 이번 주는 실패인가요?” 키타가 물었다.
“아니. 이야기의 범위가 토요일 계약에서 닫히는 거야. 현재 출석부는 첫 칸만 최신 무늬와 맞고, 뒷 칸은 낡은 무늬이며 다섯 번째 종이도 없어. 재실행 전에는 월부터 토까지 현재 완료라고 말하지 않아. 일요일에 할 일을 앞당겨 했다고도 말하지 않고.”
히토리는 손님에게 최신 영수증 오십 장을 건네며 작은 메모를 함께 붙였다. 일 번 손님에게 구만 장이 몰린 실험용 산, 일 번 손님의 최신 오십 장 질문, 책갈피 전후 각 서른 회라는 조건을 적었다. 깊은 페이지 두 방식은 재지 않았고, 실제 영업 부하의 절대 시간을 약속하지 않으며, 중앙 값 계산식은 교재 약속과 다른 상태라는 문장도 빼지 않았다.
“여전히 산은 무서워요.” 히토리가 창고 불을 끄며 말했다.
“그런데 오늘은 도망안 갔네.” 료가 말했다.
“어디까지 걸었는지 표식이 있었으니까요. 안 걸은 문까지 걸었다고 말하지 않으면, 다음에 어디서 시작할지도 알 수 있고요.”
니지카는 세 칸짜리 책갈피를 실험용 별관에서 뽑아 봉투에 넣었다. 봉투 앞면에는 ‘같은 산, 같은 질문, 같은 횟수’라고 적혔다. 뒷면에는 더 작게 ‘걸지 않은 길은 결과로 그리지 말 것’이라고 적혔다.