← IANLAB
IANLAB · CASE

픽랩

로또 번호를 뽑아보며 확률이라는 게 실제로 어떻게 생겼는지 들여다보는 웹 실험실. 번호를 찍어주는 도구가 아니라, 8,145,060분의 1이 얼마나 큰 숫자인지 눈으로 보는 쪽에 가깝습니다.

픽랩 열기 다른 앱 보기

먼저 밝혀둘 것

픽랩은 당첨 번호를 예측하지 않습니다. 로또는 매 회차 완전한 무작위이고, 지나간 회차의 통계는 다음 회차에 대해 아무것도 말해주지 않습니다. 어떤 조합을 고르든 1등 확률은 똑같이 1 / 8,145,060입니다. 이 문장은 앱을 열면 맨 위에 제일 먼저 나오도록 해뒀습니다 — 숨겨야 할 각주가 아니라 이 앱의 전제라서.

무엇을 하나

화면은 네 개입니다. 픽 생성에서 순수 무작위·빈도 가중·균형·핫·콜드 다섯 가지 방식 중 하나로 번호를 뽑습니다. 포함할 번호, 뺄 번호, 홀짝 비율, 번호합 구간 같은 조건을 걸 수도 있습니다.

데이터랩은 1회차부터 1,236회차까지의 실제 당첨 기록을 펼쳐 보여줍니다. 번호별로 몇 번 나왔는지, 홀짝 구성은 어떻게 갈리는지, 번호합은 어느 구간에 몰리는지. 균등성 검정(카이제곱 p-value 0.965)도 같이 보여주는데, 이 값이 말하는 건 하나입니다 — 이 추첨은 균등하다. 어느 번호도 특별하지 않다는 뜻입니다.

eLAB은 모델 점수가 높은 조합을 역으로 찾아보는 실험 기능이고, 마이페이지는 뽑은 번호를 회차에 묶어 저장했다가 발표 뒤 몇 개 맞았는지 대조합니다.

픽랩 픽 생성 화면 — 5게임을 생성한 결과 표와 고급 옵션
픽 생성 — 방식과 게임 수를 고르면 조합이 나오고, 고급 옵션으로 조건을 좁힐 수 있다
픽랩 데이터랩 화면 — 번호별 누적 빈도 막대그래프와 홀짝·번호합 통계
데이터랩 — 1,236회차의 번호 빈도, 홀짝 구성, 번호합 구간, 페어 빈도
픽랩 마이페이지 화면 — 저장한 3게임과 회차별 당첨 대조 결과
마이페이지 — 저장한 번호를 회차에 묶어두고 발표 뒤 몇 개 맞았는지 대조

아이디가 저장에만 필요한 이유

처음엔 로그인을 지나야 앱에 들어갈 수 있었습니다. 그런데 구경하러 온 사람에게 계정부터 만들라는 건 순서가 뒤집힌 요구라서, 로그인을 저장하는 순간으로 미뤘습니다. 번호를 뽑고 통계를 보는 데는 아무것도 필요 없고, 뽑은 번호를 회차에 남겨두고 싶을 때만 아이디를 정하면 됩니다. 저장을 누른 뒤 아이디를 만들면 하던 저장이 그대로 이어집니다.

비밀번호는 보안 장치가 아닙니다. 서버가 없어서 계정도 저장 번호도 전부 브라우저 안에만 있고, 같은 브라우저를 쓰는 다른 사람과 칸을 나누는 정도의 칸막이입니다. 기기를 옮기면 저장한 번호는 따라오지 않습니다 — 이 점도 화면에 그대로 적어두었습니다.

어떻게 만들었나

프레임워크없음 — 순수 HTML·CSS·JavaScript
저장브라우저 localStorage (서버 없음)
데이터1~1,236회차 당첨 기록을 정적 파일로 동봉
빌드빌드 단계 없음 · 파일을 열면 그대로 실행

의존성도 빌드도 없이 파일 열두 개로 돌아갑니다. 통계 계산과 번호 생성은 전부 브라우저 안에서 끝나고, 저장 경계를 lotto-store.js 한 곳에 모아둬서 나중에 서버를 붙일 때 그 파일만 API 호출로 바꾸면 되도록 해뒀습니다.

픽랩 열어보기