zerovoids.dev

위업

published 2026-10-05part 09 / 16
art-mlb-playerretrosheetgatebaseball

한동안 전시대가 노히터를 담지 못했다.

Lahman에는 경기 단위 사건 테이블이 아예 없다. 시즌 집계와 수상과 포스트시즌 시리즈뿐이다. 그래서 린스컴의 노히터 두 번과 존슨의 퍼펙트게임이 레코드 어디에도 없었다. 산문에만 적혀 있었고 게이트는 전부 초록이었다. 숫자가 틀린 게 아니라 전시대에 올라갈 항목이 통째로 빠져 있었다.

별점 자리를 전시대로 채워 놓고 그 전시대에 구멍이 있었다.

발행된 목록을 매번 읽는다

고치는 길이 둘이었다. 더 꼼꼼히 기억하거나, 발행된 목록을 선수마다 매번 읽거나.

앞쪽은 고치는 게 아니다. 노히터를 빠뜨린 이유가 부주의였으니 다음에도 같은 이유로 빠뜨린다. 읽기로 했다.

Retrosheet가 셋을 발행한다. 노히터, 퍼펙트게임, 사이클링히트. 그 표를 선수의 커리어 연도 안에서 읽고, 표에 있는데 재료에 없으면 실패로 끝난다.

한 경기 4홈런과 한 경기 20탈삼진은 그 표에 없다. 위키백과의 단일 경기 기록 페이지가 담고 있어서 사람이 적는다. 검사는 그 둘을 못 봤다고 보고한다. 확인했다는 뜻으로 읽히지 않게 하는 게 중요했다. 검사가 초록인데 안 본 항목이 있으면 초록의 뜻이 흐려진다.

선수를 들고 표를 찾아간다

방향이 중요했다. 선수를 들고 표를 찾아가고, 표를 들고 선수를 찾아오지 않는다.

그 표들은 선수를 평문으로 적는다. id가 없다. 사이클링히트 표는 Honus Wagner라 적고 노히터 표는 Lincecum, Tim이라 적는다. 페이지마다 표기가 다르다.

성만 맞춰서 전역으로 조인하면 엉뚱한 데 착지한다. 사이클링히트 표의 Johnson은 밥 존슨이고, 퍼펙트게임 표의 Gibson은 심판 그레그 깁슨이다. 선수의 전체 이름을 그 커리어 연도 안에서 찾는 건 안전하지만, 이름만으로 전역을 뒤지는 건 그렇지 않다.

박스스코어로 계산하지 않는다

Retrosheet는 박스스코어 전체도 배포한다. 그걸 받으면 노히터를 직접 뽑을 수 있다. 안 했다.

번들이 725MB인 것도 있지만, 더 큰 이유는 이미 누가 발행한 걸 다시 계산하는 게 이 작업의 모양이 아니라는 데 있다. 누가 센 걸 읽어 오면 그 사람의 집계와 어긋날 수 없다. 직접 세면 어긋날 수 있고, 어긋났을 때 어느 쪽이 맞는지를 또 판정해야 한다.

날짜가 없으면 세우지 않는다

위업은 한 경기의 사건이라 연도만으로는 어느 해에도 못 선다. YYYY-MM-DD 전체 날짜를 요구한다.

형태가 틀린 날짜나 모르는 종류를 만나면 조용히 버리지 않고 위반으로 돌려준다. 절반만 맞는 위업을 지면에 세우지 않는다. 같은 종류가 같은 날짜로 두 번 적혀 있으면 그것도 위반이다.

합작 노히터는 안 담는다. 한 사람의 위업이 아니다. 루스의 1917년이 그렇다. 첫 타자에게 볼넷을 주고 심판과 다투다 퇴장당해서 그가 던진 건 0이닝이고, 나머지 9이닝은 어니 쇼어가 던졌다. Retrosheet의 표가 그 경기 투수를 둘로 적고 각자의 이닝을 괄호에 넣어 뒀다. 그래서 이 제외는 사람 판단이 아니고 기계로 갈린다.

위업이 없는 선수는 이유를 적는다

위업이 없는 선수는 왜 없는지를 파일 서문에 적는다.

목록에 그가 없는 것과 그 목록이 답할 수 없는 건 다른 말이다. Retrosheet의 니그로리그 사이클링히트 페이지는 경기를 적고 타자를 안 적는다. 그러면 깁슨에게 사이클링히트가 없는 건지 그 페이지로는 알 수 없는 건지가 갈린다. 둘을 같은 얼굴로 두면 지면이 모르는 걸 없는 것처럼 보여 준다.

Retrosheet가 요구하는 조건은 하나다. 고지문을 실으라고 한다. 출처에 Retrosheet가 들어간 지면의 판권에 그 문장이 들어가고, 위업을 담은 지면이 그 줄 없이 나가려 하면 게이트가 막는다.