프로젝트 소개

Game Sales Aggregator는 여러 디지털 스토어의 게임 할인 정보를 자동으로 수집하여 정적 웹사이트와 Telegram 채널에 게시하는 오픈 소스 프로젝트(MIT 라이선스)입니다. 배포된 버전은 GitHub Pages에서 확인할 수 있습니다. 추적 대상: Epic Games 무료 배포(현재 및 예정), Epic Games Store 할인, Steam 일시 무료 제공, Steam 5% 이상 할인, Xbox Game Pass for PC 신규 출시 및 예정작. 사이트 기능: 300ms 디바운스가 적용된 게임 제목 검색, 카테고리별 필터링(Epic/Steam, 무료/할인, Game Pass 신규), 가격/할인율/제목별 정렬, 가격 범위 필터, localStorage 기반 위시리스트, 최근 30일 알림 기록, 다크/라이트 테마 전환, 이중 언어 지원(우크라이나어 및 영어), PWA 모드(오프라인 캐싱 지원), SEO 마크업(Open Graph, Twitter Cards, JSON-LD, sitemap.xml). 작동 방식: GitHub Actions를 통해 매시간 스크립트가 실행되어 Steam, Epic Games, Xbox Game Pass API에서 데이터를 수집합니다. 이후 deals.json 업데이트, sitemap.xml 생성, React 앱 빌드 및 배포가 이루어지며, Telegram Bot API를 통해 새로운 할인 및 무료 게임 정보가 채널로 전송됩니다. 기술 스택: React 19, TypeScript, Vite, React Router, Vanilla CSS(글래스모피즘 효과), LocaleContext를 통한 커스텀 다국어 처리, Node.js 기반 데이터 수집, vite-plugin-pwa 기반 PWA, GitHub Pages 호스팅, GitHub Actions 자동화. 로컬 실행: Node.js 20+ 및 npm이 필요합니다. Ubuntu/Debian용 install.sh와 Windows용 install.ps1 스크립트가 제공됩니다. 수동 실행 시 git clone 후 npm install을 거쳐 npm run fetch(데이터 수집), npm run dev(로컬 실행), npm run build(빌드) 등을 사용할 수 있습니다. 앱은 정적 파일로 구성되어 있어 nginx나 Caddy 등 모든 웹 서버에서 호스팅 가능합니다. GitHub Actions 알림 설정을 위해 Settings의 Secrets에 TELEGRAM_BOT_TOKEN과 TELEGRAM_CHAT_ID를 추가해야 합니다. README에는 봇을 관리자로 추가하고 getUpdates 메서드를 통해 채널 ID를 확인하는 방법이 설명되어 있습니다. 저장소 구조는 .github/workflows/scheduler.yml, public/data/deals.json, 데이터 수집 및 사이트맵 생성 스크립트, React 컴포넌트, 컨텍스트(Locale, Wishlist), 훅, 다국어 사전, 라우터, Service Worker(sw.ts) 및 Vite 설정으로 구성됩니다. 또한 무료 게임, 할인 및 Game Pass 신규 항목 알림을 위한 공개 Telegram 채널을 운영하고 있습니다.