AutoLottery
2025.07 - 2025.07 | GitHub

개요
동행복권 6/45 자동 구매를 지원하는 프로그램으로, Selenium을 활용하여 별도의 웹 브라우저 없이 로또 구매를 자동화합니다. PySide6 기반 GUI와 CLI 실행도 지원하여 백그라운드 작업이나 스케줄러와 연동할 수 있으며, 구매 성공 여부와 오류 메시지는 메일 알림을 통해 확인할 수 있어 사용자 편의성을 높였습니다. 이를 통해 안정적이고 간편한 자동 구매 환경을 제공하는 것을 목표로 합니다.
역할
- V1 – Selenium 기반 로또 자동 구매 알고리즘 구현
- V2 – PySide6 기반 GUI 설계 및 구현
- V3 – CLI 실행 지원 및 메일 알림 기능 구현
- V4 – GitHub Actions 연동 자동 빌드 및 배포 체계 구축
기술 스택
- Python, Selenium, PySide6, QT
- PyInstaller, GitHub Actions
로또 자동 구매 알고리즘 구현
Selenium을 활용해 동행복권 6/45 복권 구매 과정을 자동화했습니다. 구매 전 예치금 잔액을 확인하고, WebDriverWait으로 페이지 내 필요한 요소가 로드될 때까지 명확히 대기합니다. 또한 예외 처리를 통해 오류 발생 시 프로그램이 안정적으로 동작하도록 하여 중단 없이 신뢰성 있는 자동 구매를 구현했습니다.
PySide6 기반 GUI 개발
사용자 친화적인 인터페이스를 설계하여, 구매 수량 설정, 예치금 확인, 다양한 메뉴 등 주요 기능을 직관적으로 사용할 수 있도록 구현했습니다. 실시간 UI 상태 반영과 에러 메시지 출력으로 사용자 경험을 향상시켰습니다.

GUI
CLI를 통한 백그라운드 자동 실행
GUI 없이도 실행 가능한 자동화 스크립트를 제공하여, 백그라운드 작업이나 스케줄러와 연동해 로또 자동 구매를 수행할 수 있습니다. 실행 결과는 콘솔 로그와 메일 알림을 통해 구매 성공 여부와 오류 메시지를 실시간으로 확인할 수 있어 사용자 편의성을 높였습니다.
자동화된 CI/CD 릴리즈 배포화
PyInstaller를 사용해 윈도우 환경에서 실행 가능한 exe 파일을 생성하고, GitHub Actions 기반 CI/CD 파이프라인과 연동해 코드 변경 시 자동 빌드 및 테스트를 거쳐, 빌드된 exe 파일을 GitHub 릴리즈에 자동 업로드하는 배포 자동화 체계를 구축했습니다.

Release
회고
Selenium을 활용해 로또 자동 구매 서비스를 설계하고 구현하며, 웹 자동화와 백그라운드 실행 흐름 전반에 대한 이해를 넓힐 수 있었습니다. 특히 GUI를 통한 직관적인 조작과 CLI 기반 백그라운드 실행을 모두 지원하며, 메일 알림 기능을 통해 구매 상태를 실시간으로 확인할 수 있는 경험을 얻었습니다. 또한 안정적인 자동 구매를 위해 예외 처리와 상태 관리에 집중하며, PyInstaller와 GitHub Actions를 연동해 자동 빌드 및 배포 환경까지 구축하며 실제 서비스 운영과 배포 과정까지 경험할 수 있었습니다.