프로젝트 목록

개인 프로젝트 · 데이터 수집부터 자동 운영 흐름까지 직접 구성

Lotto Play Picker

로또 6/45와 연금복권720+ 당첨 데이터를 수집·분석하고, 주간 추천 조합 생성과 실제 결과 비교 기록까지 자동화한 개인 데이터 파이프라인 프로젝트입니다.

Data

Lotto + Pension720

Frontend

Next.js

Storage

Supabase

Automation

Scheduler + API

프로젝트 목표

이 프로젝트는 무작위 복권 결과를 예측한다고 주장하는 서비스가 아니라, 공개 당첨 데이터를 수집하고 정리한 뒤 일정한 기준으로 추천 조합을 만들고, 이후 실제 결과와 비교해 기록을 누적하는 데이터 파이프라인 실험입니다.

처음에는 단순 번호 생성기처럼 보일 수 있지만, 실제 구현에서는 외부 데이터 동기화, 예측 기록 저장, 회차별 결과 검증, 자동 스케줄 실행, 프론트 히스토리 조회를 하나의 흐름으로 묶는 데 초점을 맞췄습니다.

구현 포인트

회차 데이터 수집과 정규화

로또 6/45와 연금복권720+ 회차 데이터를 각각 수집해 Supabase 테이블에 저장하고, 프론트는 이 저장된 데이터를 기준으로만 화면을 구성하도록 분리했습니다. 덕분에 화면 요청마다 외부 사이트를 다시 조회하지 않아도 됩니다.

주간 추천 조합 자동 생성

과거 당첨 번호의 빈도, 최근성, 장기 미출현, 동반 출현, 조합 합계 같은 기준을 점수화해 매주 추천 조합을 생성하도록 구성했습니다. 연금720+도 별도 규칙으로 다음 회차 예측 5건을 저장합니다.

실제 결과 검증과 기록 누적

추첨이 끝난 회차는 당첨번호와 추천 기록을 비교해 몇 개 일치했는지, 등수에 해당하는지, 당첨금이 있는지를 다시 계산해 저장합니다. 이 구조 덕분에 단발성 추천이 아니라 누적 히스토리를 가진 기록형 서비스로 발전시킬 수 있습니다.

배포 구조 분리

프론트는 Vercel에 올리고, 자동 수집과 스케줄러가 필요한 백엔드는 별도 서버에서 운영할 수 있도록 나눴습니다. 정적 화면과 주기 실행 파이프라인의 성격이 다르다는 점을 실제 배포 구조에서 분리해 본 케이스입니다.

제가 집중한 부분

데이터 파이프라인

외부 데이터 동기화, 테이블 저장, 추천 생성, 결과 체크를 순서대로 이어지는 운영 흐름으로 만들었습니다.

자동화

로또와 연금720+를 분리된 스케줄로 실행하도록 구성해, 발표 시점이 다른 두 데이터셋을 각각 관리할 수 있게 했습니다.

프론트 가시성

추천 번호, 당첨 결과, 등수, 상금, 누적 통계를 한눈에 볼 수 있도록 카드형 UI로 정리해 기록형 서비스의 읽기 경험을 강화했습니다.

기술 구성

Next.js React FastAPI Supabase PostgreSQL Docker Compose Vercel Scheduler

정리

공개 데이터를 바탕으로 추천 조합 생성, 실제 결과 비교, 예측 기록 누적을 자동화하면서 데이터 수집, 저장, 스케줄 운영, 사용자 화면까지 하나의 흐름으로 구성한 프로젝트입니다.

수집과 분석만 하는 스크립트가 아니라, 저장과 검증까지 이어지는 장기 기록형 구조를 만들었습니다.
프론트는 조회 경험에 집중하고, 백엔드는 자동화와 적재에 집중하도록 역할을 나눴습니다.
작은 취미 프로젝트처럼 시작했지만, 실제로는 배치성 작업과 사용자 서비스가 함께 있는 운영 구조를 연습한 사례에 가깝습니다.