AutoLottery
2025.07 - 2025.07 | GitHub

개요
동행복권 6/45 자동 구매 프로그램으로, PySide6 기반 GUI와 Selenium을 활용해 별도의 웹 브라우저 없이도 복권 구매를 자동화합니다. 본 프로젝트는 사용자 편의성을 극대화하고, 안정적인 자동 구매 환경을 제공하여 로또 구매 과정을 간소화하는 데 목적이 있습니다.
역할
- V1 – PySide6 기반 사용자 인터페이스 설계 및 구현
- V2 – Selenium 기반 로또 자동 구매 알고리즘 구현
- V3 – GitHub Actions 연동 자동 배포 체계 구축
기술 스택
- Python, PySide6, QT, Selenium
- PyInstaller, GitHub Actions
PySide6 기반 GUI 개발
사용자 친화적인 인터페이스를 설계하여, 구매 수량 설정, 예치금 확인, 다양한 메뉴 등 주요 기능을 직관적으로 사용할 수 있도록 구현했습니다. 실시간 UI 상태 반영과 에러 메시지 출력으로 사용자 경험을 향상시켰습니다.

GUI
로또 자동 구매 알고리즘 구현
Selenium을 활용해 동행복권 6/45 복권 구매 과정을 자동화했습니다. 구매 전 예치금 잔액을 확인하고, WebDriverWait으로 페이지 내 필요한 요소가 로드될 때까지 명확히 대기합니다. 또한 예외 처리를 통해 오류 발생 시 프로그램이 안정적으로 동작하도록 하여 중단 없이 신뢰성 있는 자동 구매를 구현했습니다.
자동화된 CI/CD 릴리즈 배포화
PyInstaller를 사용해 윈도우 환경에서 실행 가능한 exe 파일을 생성하고, GitHub Actions 기반 CI/CD 파이프라인과 연동해 코드 변경 시 자동 빌드 및 테스트를 거쳐, 빌드된 exe 파일을 GitHub 릴리즈에 자동 업로드하는 배포 자동화 체계를 구축했습니다.

Release
회고
PySide6와 Selenium을 활용한 GUI 자동화 및 웹 자동화 기술을 실무에 적용해 볼 수 있었습니다. 특히, 안정적인 자동 구매를 위해 예외 처리와 UI 상태 관리에 집중하면서 사용자 경험 향상의 중요성을 체감했습니다. 또한, PyInstaller와 GitHub Actions를 연동한 자동 빌드 및 배포 자동화로 배포 프로세스를 크게 효율화할 수 있었습니다.