정보공유

로또 번호 자동 생성기의 비밀 우리가 매주 누르는 버튼 속 코딩 이야기

안녕하세요! 매주 토요일 밤, 설레는 마음으로 로또 추첨을 기다리시는 분들 많으시죠? “이번 주는 자동이야, 수동이야?” 고민하다가 결국 “에라 모르겠다, 자동 한 장이요!”라고 외치곤 하는데요. 우리가 무심코 누르는 그 ‘자동 생성’ 버튼 뒤에 엄청난 코딩의 원리가 숨어있다는 사실, 알고 계셨나요? 오늘은 복잡한 컴퓨터 용어 싹 빼고, 친근하고 재미있게 로또 자동 생성기의 원리와 코딩의 연결고리를 이야기해 볼까 합니다.

한눈에 보는 로또 생성기 원리와 코딩 요약

핵심 개념 로또 생성기에서의 역할 코딩과의 연관성 (프로그래밍 원리)
난수 생성기 (Random) 1부터 45까지의 숫자 중 아무 숫자나 무작위로 뽑아내기 컴퓨터가 예측할 수 없는 무작위 수를 만드는 알고리즘 기법
중복 제거 (Unique) 앞에서 뽑은 숫자가 또 나오지 않게 걸러내기 조건문(If)과 배열(Array)을 활용한 데이터 필터링 기술
반복문 (Loop) 6개의 숫자가 모두 채워질 때까지 뽑는 과정 반복하기 정해진 조건이 만족할 때까지 동작을 실행하는 반복 명령어
정렬 (Sort) 뽑힌 6개의 숫자를 보기 좋게 작은 숫자부터 크기순으로 나열하기 데이터를 특정 기준에 따라 재배치하는 정렬 알고리즘

로또 자동 생성기는 어떻게 숫자를 고를까?

우리가 은행 ATM이나 편의점, 혹은 스마트폰 앱에서 ‘자동 생성’을 누르면 컴퓨터는 아주 짧은 순간에 바쁘게 움직입니다. 사람이 눈 한번 깜빡할 사이에 1부터 45까지의 숫자 중 딱 6개를 골라내야 하죠. 이때 컴퓨터가 일하는 방식은 우리가 생각하는 것보다 훨씬 체계적이랍니다.

컴퓨터 칩과 코딩 이미지
출처: Unsplash의 Alexandre Debiève

컴퓨터는 기본적으로 아주 똑똑하지만, 스스로 생각하는 힘은 없어요. 그래서 개발자들이 “너는 지금부터 내가 말한 순서대로 숫자를 뽑아야 해”라고 미리 순서를 적어두는데, 이걸 바로 ‘프로그래밍’ 또는 ‘코딩’이라고 불러요. 로또 생성기 코딩의 핵심은 크게 세 가지 단계로 나뉩니다. 첫째는 아무 번호나 막 고르기, 둘째는 똑같은 번호가 나오면 버리기, 셋째는 6개가 다 찰 때까지 이 짓을 반복하기입니다. 아주 단순해 보이지만 이 안에는 개발자들이 매일 고민하는 기초 코딩 원리가 전부 녹아있답니다.

코딩으로 풀어보는 로또 생성기의 4대 원리

1. 아무도 예측할 수 없게 만드는 난수 생성

로또의 생명은 공정함이죠? 누구도 다음에 무슨 숫자가 나올지 맞출 수 없어야 해요. 코딩에서는 프로그래밍 언어마다 기본적으로 제공하는 ‘랜덤(Random) 함수’라는 녀석을 사용합니다. 컴퓨터에게 무작위로 주사위를 던지게 만드는 명령이라고 생각하시면 돼요. 개발자가 코드창에 “1부터 45 사이에서 아무거나 하나 던져줘!”라고 적으면, 컴퓨터가 번호를 하나 툭 던져주는 원리입니다.

디지털 화면과 데이터 흐름
출처: Unsplash의 Marvin Meyer

2. 겹치는 숫자는 절대 용납 못 해! 중복 제거

그런데 컴퓨터에게 무작위로 숫자를 뽑으라고만 하면 문제가 생길 수 있어요. 첫 번째에 7을 뽑았는데, 두 번째에도 또 7을 뽑을 수 있거든요. 실제 로또에서는 7번 공이 두 번 나올 수 없잖아요? 그래서 코딩에서는 ‘조건문’을 사용합니다. “만약(If) 방금 뽑은 숫자가 이미 내가 가지고 있는 숫자의 방(배열)에 들어있다면, 그 숫자는 버리고 다시 뽑아라!”라고 컴퓨터에게 명령을 내리는 것이죠. 이 조건문 덕분에 우리는 6개의 서로 다른 청정한 숫자를 얻을 수 있게 됩니다.

3. 6개가 될 때까지 계속 돌려라, 반복문

숫자를 하나 뽑고 검사하고, 또 하나 뽑고 검사하는 과정을 사람이 일일이 코드로 짜려면 귀찮겠죠? 이때 등장하는 구원투수가 바로 ‘반복문’입니다. 코딩에서는 “숫자가 6개가 채워질 때까지 이 과정을 계속 반복해줘”라고 한 줄만 써주면 끝납니다. 컴퓨터는 지치지도 않고 눈 깜짝할 사이에 6개의 방을 가득 채울 때까지 무한 반복 작업을 수행합니다.

로또 번호 자동 생성기의 비밀 우리가 매주 누르는 버튼 속 코딩 이야기
출처: Unsplash의 Artem Sapegin

4. 보기 좋은 떡이 먹기도 좋다, 정렬 알고리즘

마지막으로 숫자가 예를 들어 [35, 4, 11, 45, 2, 19] 순서로 뽑혔다고 해볼게요. 이대로 영수증에 인쇄되면 보기가 참 불편하겠죠? 그래서 컴퓨터는 인쇄하기 직전에 숫자를 작은 순서대로 정렬해 줍니다. 코딩 세상에는 데이터를 순서대로 줄 세우는 ‘정렬(Sort) 알고리즘’이라는 기술이 있어요. 키 순서대로 서는 것처럼, 컴퓨터가 순식간에 앞뒤 숫자를 비교해서 [2, 4, 11, 19, 35, 45]로 예쁘게 줄을 세워주는 것이죠.

생각보다 가까운 곳에 있는 코딩의 세계

어떠신가요? 매주 가볍게 구매하던 로또 자동 생성기 한 장에 난수, 조건문, 반복문, 정렬이라는 코딩의 기본 핵심 개념이 전부 다 들어있다는 게 신기하지 않나요? 사실 우리가 스마트폰으로 배달 음식을 주문할 때 가까운 음식점 순으로 정렬하는 것, 쇼핑몰에서 추천 상품을 무작위로 띄워주는 것 모두 이와 비슷한 원리로 움직이고 있어요. 코딩은 거창한 인공지능이나 로봇에만 쓰이는 게 아니라, 이미 우리 일상 속 깊숙한 곳에서 소소한 편리함을 만들어주고 있답니다. 이번 주말에 로또를 자동으로 사신다면, 영수증을 보며 컴퓨터가 열심히 일했을 코딩의 흔적을 한번 떠올려보세요!

 

 

쿠팡파트너스 활동으로 인한 소정의 수수료를 받습니다.

로또에 대한 상품 10개 리스트입니다.