개요

이 프로젝트는 동행복권 웹사이트에서의 로또 및 연금복권 구매 과정을 자동화하기 위한 Python 기반 시스템입니다.

매주 반복되는 로그인, 잔액 확인, 예치금 충전, 복권 구매 과정을 브라우저 자동화 방식으로 처리하여, 사람이 직접 개입하지 않아도 정해진 시점에 복권 구매가 완료되도록 설계되었습니다.

개인 리눅스 서버, NAS, 또는 GitHub Actions 환경에서 실행할 수 있으며, Systemd 타이머를 활용해 정기 실행 작업으로 운영하는 것을 전제로 합니다.

저장소 정보

주요 기능

이 시스템은 “번호 추천”이 아닌, 실제 구매 행위 자체를 자동화하는 데 초점을 맞추고 있습니다.

또한 본 도구는 동행복권이 제공하는 복권 과몰입 및 중독 예방 제도의 범위 내에서만 동작하도록 설계되었습니다. 구매 한도, 충전 제한, 이용 시간 제한 등은 모두 동행복권 시스템의 정책을 그대로 따르며, 해당 제도를 우회하거나 무력화하는 기능은 포함하지 않습니다.

즉, 이 도구는 사용자의 반복적인 조작을 줄여줄 뿐, 과도한 구매를 유도하거나 통제 장치를 회피하는 목적을 갖지 않습니다.

  • 예치금 잔액 확인 및 조건부 충전

    • 구매 금액 부족 시 자동 충전
    • 충전 금액은 환경 변수로 제어
  • 복권 자동 구매

    • 로또 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 변경으로 인해 자동화가 실패할 수 있습니다.
  • 동행복권의 과몰입 방지 정책 및 이용 제한을 우회하지 않습니다.
  • 본 프로젝트는 개인적 사용을 전제로 하며, 발생하는 모든 책임은 사용자에게 있습니다.