수정 완료 약 2분

검산하라고 낸 숫자가 정작 검산이 안 됐다

매일 뭘 걸렀는지 독자가 직접 세어보라고 /data에 숫자를 둔다. 그런데 그 페이지가 "98건에서 2건을 빼면 후보 59건"이라고 적고 있었다. 98에서 2를 빼면 96이다. 국내 뉴스 풀이 화면 계산에서 통째로 빠져 있었다.

이 글은 뉴스 요약이 아니라 이 사이트를 만들면서 있었던 일에 대한 기록입니다.

매일 아침 몇 건을 훑어서 몇 건을 냈는지 /data에 그대로 둔다. 우리가 무엇을 걸렀는지 독자가 직접 세어볼 수 있으라고 만든 지면이다.

그 페이지가 9월 1일자로 이렇게 적고 있었다. 기간 안에 든 기사 98건에서 중복 0건과 자기홍보 2건을 빼면 후보가 59건이다. 그런데 98에서 2를 빼면 96이다. 59가 아니다.

검산하라고 낸 숫자가 검산이 안 됐다

숫자를 늘어놓는 것 자체가 목적이 아니다. 독자가 손으로 더하고 빼서 우리 말이 맞는지 확인하는 게 목적이다. 그 지면에서 정작 그 더하기가 안 맞았다. 한동안 그대로 나가고 있었다.

빠진 건 국내 뉴스였다

우리는 뉴스를 두 갈래로 모은다. 해외 매체를 훑는 큰 풀이 하나, 한국 소식만 따로 도는 풀이 하나다. 두 풀은 거르는 규칙도 조금 다르다.

화면에 검산식을 그리는 코드는 이 중 해외 풀만 알고 있었다. 국내 풀에 들어온 37건이 어느 단계에도 안 잡혔다. 98에서 이 37건과 나머지 제외를 다 빼야 59가 나오는데, 화면은 37을 통째로 모르고 있었다.

조각을 남김없이 세운다

고친 뒤에는 기간 안에 든 98건이 여섯 갈래로 정확히 나뉜다.

갈래건수
중복 제외0
자기홍보 제외2
AI 범위 밖 제외0
해외 후보59
국내 풀37
합계98
2026-09-01 기준. 여섯 갈래의 합이 기간 안에 든 98건과 정확히 같다.

국내 풀 37건도 다시 나뉜다. 실제 국내 후보 24건, 홍보성으로 제외한 4건, AI 범위 밖으로 제외한 9건이다.

98 = 0(중복) + 2(자기홍보) + 0(범위 밖) + 59(해외 후보) + 37(국내 풀)
37(국내 풀) = 24(국내 후보) + 4(홍보 제외) + 9(범위 밖)

없는 날은 0을 지어내지 않는다

국내 집계를 시작하기 전 아카이브에는 국내 항목이 아예 없는 날이 있다. 이런 날 빈자리를 0으로 채우면 검산식은 다시 맞아 보인다. 하지만 그 0은 사실이 아니다.

그래서 국내 필드가 없던 날은 0을 넣지 않고 국내 집계가 없다고 둔다. 검산이 서는 날만 조각을 그리고, 안 서는 날은 안전한 폴백 문장을 쓴다. 빈 칸을 0으로 메우는 게 애초에 그 버그가 하던 일이었다.

남는 것

숫자를 보여주는 것만으로 투명한 게 아니었다. 그 숫자가 서로 맞아야 투명한 거였다.

말과 그림은 틀려도 그럴듯해 보인다. 검산식은 다르다. 한 줄만 안 맞아도 바로 드러난다. 그래서 이 지면을 문장이 아니라 더하고 빼서 확인되는 식으로 냈다. 우리가 틀리면 독자가 먼저 알아챌 수 있게.

같은 주에 도구 업데이트 페이지도 머리글은 125건, 히트맵은 124건을 나란히 보여주고 있었다. 뿌리가 같은 문제라 같은 방식으로 고쳤다. 한 벌의 숫자를 여러 곳이 나눠 쓰게.

← 기록 전체

이 사이트가 무엇을 어떻게 고르는지는 소개에, 매일의 수집·발행 수치는 데이터에 공개돼 있습니다.