개요
이 프로젝트는 동행복권 웹사이트에서의 **로또 및 연금복권 구매 과정을 자동화**하기 위한 Python 기반 시스템입니다.
매주 반복되는 로그인, 잔액 확인, 예치금 충전, 복권 구매 과정을 브라우저 자동화 방식으로 처리하여, 사람이 직접 개입하지 않아도 정해진 시점에 복권 구매가 완료되도록 설계되었습니다.
개인 리눅스 서버, NAS, 또는 GitHub Actions 환경에서 실행할 수 있으며, Systemd 타이머를 활용해 **정기 실행 작업**으로 운영하는 것을 전제로 합니다.
### 저장소 정보
- GitHub: https://github.com/yoonbae81/lotto
주요 기능
이 시스템은 “번호 추천”이 아닌, **실제 구매 행위 자체를 자동화**하는 데 초점을 맞추고 있습니다.
또한 본 도구는 동행복권이 제공하는 **복권 과몰입 및 중독 예방 제도**의 범위 내에서만 동작하도록 설계되었습니다. 구매 한도, 충전 제한, 이용 시간 제한 등은 모두 동행복권 시스템의 정책을 그대로 따르며, 해당 제도를 우회하거나 무력화하는 기능은 포함하지 않습니다.
즉, 이 도구는 사용자의 반복적인 조작을 줄여줄 뿐, 과도한 구매를 유도하거나 통제 장치를 회피하는 목적을 갖지 않습니다.
- 예치금 잔액 확인 및 조건부 충전
- 구매 금액 부족 시 자동 충전
- 충전 금액은 환경 변수로 제어
- 복권 자동 구매
- 로또 6/45 자동 구매(자동/수동 번호 혼합 지원)
- 연금복권 720 자동 구매
- 실행 자동화
- Systemd 타이머 기반 주기 실행
- GitHub Actions를 이용한 서버리스 실행 가능
동작 방식
이 도구는 **API 호출 방식이 아닌 실제 브라우저 조작 방식**을 사용합니다.
1. Playwright를 통해 브라우저 실행
2. 로그인 화면에서 계정 정보 입력
3. 보안 키패드는 OCR(Tesseract)을 이용해 인식
4. 잔액 확인 후 필요 시 자동 충전
5. 설정된 복권 종류 및 수량만큼 구매 진행
6. 구매 결과 확인 후 종료
설정 예시
모든 주요 설정은 `.env` 파일을 통해 관리됩니다.
아이디, 비밀번호, 충전 PIN, 구매 옵션을 코드 수정 없이 변경할 수 있습니다.
USER_ID=your_id PASSWD=your_password CHARGE_PIN=123456 AUTO_GAMES=3 MANUAL_NUMBERS=[[1,2,3,4,5,6], [1,2,3,4,5,6]]
이 파일에 포함된 정보는 외부로 전송되거나 저장되지 않으며, 스크립트 실행시 로컬 또는 사용자가 지정한 실행 환경(GitHub Actions 등)에서만 사용됩니다. 별도의 서버로 계정 정보나 PIN을 수집하거나 전송하는 기능은 포함되어 있지 않습니다.
실행 방식
### 수동 실행
./scripts/purchase.sh
### 자동 실행
- Systemd : 타이머를 이용해 매주 정해진 시간에 자동 실행하도록 구성할 수 있습니다. 이 방식은 개인 서버나 NAS 환경에서 특히 적합합니다.
- GitHub Actions : 별도의 서버를 운영하지 않는 경우, GitHub Actions에 시크릿을 등록하여 동일한 자동 구매 흐름을 실행할 수 있습니다.
주의 사항
이 도구는 구매 자동화를 돕는 도구일 뿐, 당첨을 보장하거나 확률을 높여주지 않습니다.
- 실제 금전 거래가 발생하므로 설정값을 반드시 확인해야 합니다.
- 계정 정보 및 PIN 관리는 전적으로 사용자 책임입니다.
- 웹 UI 변경으로 인해 자동화가 실패할 수 있습니다.
- 동행복권의 과몰입 방지 정책 및 이용 제한을 우회하지 않습니다.
- 본 프로젝트는 개인적 사용을 전제로 하며, 발생하는 모든 책임은 사용자에게 있습니다.
마치며
이 프로젝트는 “로또를 잘 맞히기 위한 도구”라기보다는, 반복적인 웹 작업을 자동화하는 하나의 실전 예제에 가깝습니다.
브라우저 자동화, OCR 처리, 스케줄링을 하나의 흐름으로 묶어 실제로 운영 가능한 수준의 자동화 시스템을 구성하는 것이 목표로 개발되었습니다.
자동화는 진리인거 같아요
좋은정보 감사합니다
깃헙 액션에서 하려고 하는데 변수 저장하고 실행했더니 이런 에러가 뜨는데 어떻게 해결 해야할까요?
올려주신 글 보고 GitHub Actions 으로 도전하는데 아래의 에러가 지속적으로 발생하네요
💰 Checking balance...
Error: Process completed with exit code 1.
혹시 저의 설정 중에 잘 못된 부분을 알 수 있을까요?
윗분과 동일하게 발란스 체크에서 동일한 오류가 떨어지네요
깃헙에서 싱크까지 진행했는데 제가 빠트린게 있을까요?
다른분 되시는분 있는지 궁금하네요.
Run chmod +x scripts/purchase.sh
🎰 Lotto Auto Purchase
========================================
2026-02-11 01:3***:13
💰 Checking balance...
Error: Process completed with exit code 1.
연초 리뉴얼 이후 동행복권에서 계속 뭔가를 바꿔서 고쳐도 고쳐도 계속 고장이네요. 조만간 고쳐보겠습니다.