이 서비스는 동행복권 웹사이트에서 로또 6/45 당첨 데이터를 자동으로 수집하고, 이를 분석하여 JSON 형식의 API로 제공합니다.
데이터를 불러오는 중...
홀수와 짝수의 조합 패턴 분석입니다.
홀수(O), 짝수(E)로 표시됩니다.
1-10, 11-20, 21-30, 31-40, 41-45 구간별 번호 분포입니다.
전체 0회차 중 0회차(0%)에서 연속된 번호가 나왔습니다.
2쌍 이상의 연속 번호가 나온 회차는 0회차(0%)입니다.
| 연속 번호 | 출현 횟수 | 비율 |
|---|
전체 평균 간격: 0
| 간격 | 출현 횟수 | 비율 |
|---|
전체 평균 합계: 0 (최소: 0, 최대: 0)
| 합계 | 출현 횟수 | 비율 |
|---|
| 평균 | 출현 횟수 | 비율 |
|---|
| 번호 | 휴면 회차 | 평균 휴면기간 |
|---|
전체 1등 당첨 0건 중:
| 회차 | 자동 비율 | 자동/수동 |
|---|
| 지역 | 당첨 횟수 | 비율 |
|---|
모든 로또 회차의 목록을 제공합니다. 회차별 번호(draw_no) 기준으로 내림차순 정렬되어 있습니다.
{
"draws": [
{
"draw_no": 1162,
"draw_date": "2025-03-08",
"file": "draws/lotto_1162.json"
},
{
"draw_no": 1161,
"draw_date": "2025-03-01",
"file": "draws/lotto_1161.json"
},
...
],
"last_updated": "2025-03-10T17:32:57.390631"
}
GET /lotto/draws/lotto_{회차번호}.json
특정 회차의 당첨 번호, 당첨금액, 1등 판매점 정보를 제공합니다.
{
"draw_no": 1162,
"draw_date": "2025-03-08",
"numbers": [20, 21, 22, 25, 28, 29],
"bonus_number": 6,
"prize_info": [
{
"rank": "1등",
"total_prize": "29,661,516,756원",
"winner_count": "36",
"prize_per_winner": "823,931,021원"
},
...
],
"total_sales_amount": "123,230,590,000원",
"first_prize_store_info": [
{
"store_id": "11110012",
"type": "자동"
},
...
],
"updated_at": "2025-03-10T17:32:57.381106"
}
번호별 출현 빈도, 패턴 분석, 연속번호, 휴면기간, 지역별 당첨 통계 등 다양한 통계 정보를 제공합니다.
{
"total_draws": 1162,
"first_draw": 1,
"last_draw": 1162,
"frequency_stats": {
"most_frequent_numbers": [
{"number": 34, "frequency": 190, "percentage": 16.35},
{"number": 18, "frequency": 188, "percentage": 16.18},
...
],
"least_frequent_numbers": [...],
"all_numbers_frequency": [...]
},
"pattern_stats": {
"odd_even_stats": {...},
"range_stats": {...}
},
"consecutive_stats": {
"draws_with_consecutive": 423,
"draws_with_consecutive_percentage": 36.4,
"top_consecutive_pairs": [...]
},
"gap_stats": {...},
"sum_and_avg_stats": {...},
"dormant_stats": {...},
"auto_manual_ratio_stats": {...},
"regional_stats": {...},
"updated_at": "2025-03-10T17:32:57.714575"
}
GET /lotto/stores/{판매점ID}.json
특정 판매점의 상세 정보(이름, 주소, 전화번호, 취급복권 등)를 제공합니다.
{
"store_id": "11110012",
"name": "신일",
"address": "서울 강서구 까치산로 177 1층 101호",
"phone": "02-2618-3257",
"lottery_types": [
"lotto645"
]
}
모든 판매점 정보를 하나의 파일로 제공합니다.
{
"11110012": {
"store_id": "11110012",
"name": "신일",
"address": "서울 강서구 까치산로 177 1층 101호",
"phone": "02-2618-3257",
"lottery_types": [
"lotto645"
]
},
"12840241": {
"store_id": "12840241",
"name": "동행로또복권판매",
"address": "인천 동구 화도진로 33-1 1층",
"phone": "032-123-4567",
"lottery_types": [
"lotto645"
]
},
...
}
모든 연금복권 회차의 목록을 제공합니다. 회차별 번호(draw_no) 기준으로 내림차순 정렬되어 있습니다.
{
"draws": [
{
"draw_no": 253,
"draw_date": "2025-03-06",
"file": "draws/pension_253.json"
},
{
"draw_no": 252,
"draw_date": "2025-02-27",
"file": "draws/pension_252.json"
},
...
],
"last_updated": "2025-03-12T14:06:50.793067"
}
GET /pension/draws/pension_{회차번호}.json
특정 회차의 당첨 번호 정보를 제공합니다.
{
"draw_no": 253,
"draw_date": "2025-03-06",
"group": "4",
"numbers": [
"4",
"8",
"4",
"0",
"1",
"0"
],
"bonus_group": "각",
"bonus_numbers": [
"9",
"2",
"1",
"0",
"6",
"9"
],
"prize_info": [
{
"rank": "1",
"winner_count": "1"
},
{
"rank": "2",
"winner_count": "4"
},
...
],
"updated_at": "2025-03-12T14:06:50.793067"
}
GET /pension/stores/stores_{회차번호}.json
특정 회차의 1등, 2등, 보너스 당첨 판매점 정보를 제공합니다.
{
"first_prize_store_info": [
{
"name": "행운의집로또",
"address": "충남 아산시 배방읍 북수북길 7-4 1층 101,102호"
}
],
"second_prize_store_info": [
{
"name": "행운의집로또",
"address": "충남 아산시 배방읍 북수북길 7-4 1층 101,102호"
},
...
],
"bonus_prize_store_info": [
{
"name": "인생여섯컷",
"address": "경기 수원시 권선구 정조로384번길 2 (세류동) 1층"
},
...
]
}
번호별 출현 빈도, 등수별 당첨자 수, 판매점 통계 등 다양한 통계 정보를 제공합니다.
{
"total_draws": 253,
"first_draw": 1,
"last_draw": 253,
"frequency_stats": {
"group_frequency": [
{"group": "1", "frequency": 24, "percentage": 9.49},
{"group": "2", "frequency": 25, "percentage": 9.88},
...
],
"position_frequency": [...],
"bonus_frequency": [...],
"total_draws": 253
},
"prize_stats": {
"rank_stats": [...]
},
"store_stats": {
"region_stats": [...],
"top_stores": [...]
},
"updated_at": "2025-03-12T14:06:50.793067"
}
JavaScript를 사용한 API 호출 예시:
// 최신 회차 목록 가져오기
fetch('lotto/index.json')
.then(response => response.json())
.then(data => {
// 최신 회차 번호 - 항상 배열의 첫 번째 요소 (draw_no 기준 내림차순 정렬)
const latestDraw = data.draws[0].draw_no;
console.log(`최신 회차: ${latestDraw}`);
console.log(`추첨일: ${data.draws[0].draw_date}`);
// 최신 회차 상세 정보 가져오기
return fetch(`lotto/${data.draws[0].file}`);
})
.then(response => response.json())
.then(drawData => {
displayLatestDraw(drawData);
})
.catch(error => {
console.error('최신 회차 정보 로드 실패:', error);
});
// 통계 데이터 로드
fetch('lotto/statistics.json')
.then(response => response.json())
.then(data => {
// 가장 많이 나온 번호 5개 추출
const topNumbers = data.frequency_stats.most_frequent_numbers.slice(0, 5);
console.log('가장 많이 나온 번호:', topNumbers);
// 연속번호 출현 통계
console.log(`전체 ${data.total_draws}회 중 ${data.consecutive_stats.draws_with_consecutive}회(${data.consecutive_stats.draws_with_consecutive_percentage}%)에서 연속번호 출현`);
})
.catch(error => {
console.error('통계 데이터 로드 실패:', error);
});
이 프로젝트는 동행복권 웹사이트에서 로또 6/45 당첨 데이터를 자동으로 수집하고, 이를 분석하여 사용자에게 유용한 통계 정보를 제공하는 시스템입니다.
데이터는 매주 일요일 오전 9시(한국 시간)에 자동으로 업데이트됩니다. GitHub Actions를 통해 최신 로또 당첨 정보를 크롤링하고 통계 데이터를 갱신합니다.