통계보다 먼저 원본 계보를 확인합니다
번호 빈도표가 보기 좋더라도 어느 회차를 포함했는지, 원본이 무엇인지, 수정된 당첨금이 반영됐는지 알 수 없으면 재현할 수 없습니다. BALLPICK의 통계는 동행복권 회차별 추첨결과를 기준 원본으로 삼아야 하며, 다른 블로그나 검색 결과 요약을 원본처럼 사용하지 않습니다.
한 행에는 회차, 추첨일, 주 번호 6개, 보너스번호, 등위별 당첨자 수와 당첨금, 수집시각, 원본 URL을 기록합니다. 번호와 당첨금은 갱신 시점이 다를 수 있으므로 같은 상태값으로 묶지 않습니다.
입력 단계의 구조 검사를 먼저 합니다
공식 페이지에서 값을 읽은 직후 아래 조건을 검사합니다. 하나라도 실패하면 통계 테이블에 합치지 않고 검토 대기 상태로 둡니다.
| 필드 | 필수 검사 | 실패 예시 |
|---|---|---|
| 회차 | 양의 정수, 기존 회차와 중복 없음 | 같은 회차가 두 행 |
| 추첨일 | 유효한 날짜, 회차 순서와 모순 없음 | 미래 날짜·역전 |
| 주 번호 | 1~45 정수 6개, 중복 없음 | 0, 46, 같은 번호 두 번 |
| 보너스번호 | 1~45, 주 번호와 다름 | 주 번호와 중복 |
| 당첨자·당첨금 | 0 이상의 숫자 또는 미확정 상태 | 빈칸을 0원으로 오해 |
| 출처 | 조회한 공식 URL과 시각 | 출처 없는 복사값 |
번호는 정렬해서 저장하더라도 원본 표시 순서를 별도 보존하면 수집 오류를 추적하기 쉽습니다. 쉼표, 통화기호, 공백을 제거한 뒤 숫자로 바꾸되 원문 문자열도 감사 로그에 남깁니다.
누락과 중복은 회차 범위로 검출합니다
최소 회차와 최신 회차 사이의 정수 목록을 만든 뒤 저장된 회차와 차집합을 구하면 누락 회차를 찾을 수 있습니다. 전체 행 수만 맞는다고 누락이 없는 것은 아닙니다. 한 회차가 중복되고 다른 회차가 빠지면 총개수는 같을 수 있습니다.
- 회차 기본키로 중복 입력을 막습니다.
- 최신 회차만 확인하지 않고 최근 8개 회차를 다시 조회해 지연 수정 여부를 봅니다.
- 추첨 직후 번호가 확정됐지만 당첨금이 비어 있으면 미확정으로 저장합니다.
- 재조회 때 값이 바뀌면 이전 값, 새 값, 변경시각을 로그로 남깁니다.
- 오류가 있는 행은 삭제해 숨기기보다 통계 집계에서 제외하고 원인을 기록합니다.
표본 대조는 무작위와 경계값을 함께 뽑습니다
최신 회차 몇 개만 눈으로 확인하면 오래된 파싱 오류를 놓칠 수 있습니다. 최초 회차, 최신 회차, 연도가 바뀌는 회차, 당첨자 0명인 회차, 무작위 표본을 함께 확인합니다. 각 표본에서 공식 화면과 DB의 번호·보너스·날짜·당첨금을 한 줄씩 대조합니다.
| 표본 종류 | 선택 이유 | 확인 항목 |
| 최초 회차 | 오래된 형식 차이 | 날짜·번호 구조 |
| 최신 회차 | 수집 지연 | 번호와 당첨금 확정 여부 |
| 연도 경계 | 날짜 파싱 | 연·월·일 변환 |
| 당첨자 0명 | 0과 빈칸 구분 | 인원·이월 처리 |
| 무작위 10개 | 선택 편향 감소 | 전 필드 대조 |
검수자는 표본 회차, 확인일, 결과, 수정한 코드 또는 데이터 변경을 기록합니다. 표본이 모두 맞아도 전체 무결성이 증명되는 것은 아니므로 자동 구조검사와 함께 사용합니다.
통계 계산은 원본 테이블과 분리합니다
번호별 출현횟수, 홀짝 비율, 합계, 연속번호 같은 파생값을 원본 행에 직접 덮어쓰지 않습니다. 원본 번호에서 언제든 다시 계산할 수 있게 파생 쿼리나 별도 집계표로 만듭니다. 집계 기준 회차와 생성시각을 결과에 표시하면 사용자가 서로 다른 기간의 표를 비교하는 실수를 줄일 수 있습니다.
번호 7개를 모두 빈도에 포함하는 오류를 막기 위해 주 번호와 보너스번호 통계를 구분합니다. 보너스번호를 포함한 분석이라면 제목과 범례에 명시합니다. 최신 회차가 추가되면 캐시와 집계가 같은 기준 회차를 가리키는지도 확인합니다.
수정 이력이 신뢰의 일부입니다
공식 원본과 다른 값을 발견하면 해당 회차를 수정하고 끝내지 않습니다. 원인이 수집기 파싱, 원본 지연, 수동 입력, 캐시 중 어디였는지 기록하고 같은 유형의 오류를 전체 회차에서 재검사합니다. 통계 화면에는 데이터 기준 회차와 공식 원본 링크를 제공합니다.
배포된 화면과 DB를 다시 대조합니다
DB가 맞아도 오래된 캐시가 남으면 사용자는 다른 값을 볼 수 있습니다. 최신 회차 번호, 통계 기준 회차, 사이트맵의 수정일을 배포 후 확인하고 캐시 응답의 생성시각을 기록합니다. API 응답과 실제 HTML에 표시된 값을 같은 기준 회차로 비교합니다.
전체 회차를 CSV로 내보낼 때는 행 수, 최소·최대 회차, 생성시각, 필드 목록을 함께 넣습니다. 이전 스냅샷과 비교해 새 회차 추가 외에 과거 행이 바뀌었다면 변경 회차 목록을 만듭니다. 이 스냅샷은 통계 결과를 나중에 재현할 기준점이 됩니다.
사용자가 직접 검산하려면 통계 화면에서 번호 하나를 선택해 출현 회차 목록을 만든 뒤 공식 결과와 표본 대조할 수 있어야 합니다. BALLPICK의 숫자는 예측 신호가 아니라 공식 결과를 요약한 파생 데이터이며, 원본과 다를 때는 공식 결과가 우선합니다.