로또 당첨번호 & 번호 자동생성 플러그인 (lotto)
로또 당첨번호 & 번호 자동생성 플러그인 (lotto)
나눔로또 당첨번호를 자동으로 수집해 보여주고, 회원/비회원이 원하는 게임 수만큼 무작위 번호를 생성할 수 있는 플러그인입니다. 관리자가 "생성 개수"별로 필요 포인트를 자유롭게 설정할 수 있어(무료 상품도 가능) 포인트 소진 콘텐츠로도 활용할 수 있습니다. 별도의 DB 테이블 없이 data/ 폴더의 JSON/CSV 파일에 데이터를 저장하므로 설치와 이전이 간단합니다. bbs/ 하위가 아닌 plugin/lotto/ 독립 진입점이라 코어 파일을 전혀 수정하지 않습니다.
주요 기능
- 나눔로또 최신 당첨번호 + 지난 회차 50건 목록 자동 수집·표시(최소 10분 간격 캐시, 매 요청마다 외부 서버로 나가지 않음)
- 관리자가 설정한 "생성 개수" 상품 중 선택해 무작위 번호 생성 — 상품별 필요 포인트를 0(무료)부터 자유롭게 설정 가능, 비회원도 무료 상품은 이용 가능
- 포인트가 필요한 상품은 로그인 + 보유 포인트 확인 후 자동 차감(그누보드 포인트 시스템 연동)
- 로그인 회원 전용 "내가 구입한 번호" 페이지 — 생성일시/게임수/사용 포인트/번호를 이력으로 확인
- 관리자 팝업(생성 개수/포인트 상품 관리) — 상품 추가·수정·삭제를 화면에서 바로 처리
- 관리자 팝업(생성 현황) — 지금까지 생성된 모든 번호를 최신 당첨번호 기준 등수(1~5등/낙첨)까지 함께 확인
구성 파일
plugin/lotto/index.php— 당첨번호 결과 화면(싱글 페이지)plugin/lotto/random.php— 번호 자동생성 화면(싱글 페이지)plugin/lotto/generate.php— 번호 생성 처리 AJAX 엔드포인트(포인트 차감 포함)plugin/lotto/mypage.php— 내가 구입(생성)한 번호 목록, 로그인 회원 전용plugin/lotto/admin.php— 관리자 팝업: 생성 개수/포인트 상품 관리, 최고관리자 전용plugin/lotto/admin.save.php— 상품 목록 저장 AJAX 엔드포인트, 최고관리자 전용plugin/lotto/status.php— 관리자 팝업: 생성 현황 및 당첨 등수 확인, 최고관리자 전용plugin/lotto/admin.layout.php— 관리자 팝업 2개(admin.php/status.php) 공용 레이아웃plugin/lotto/lotto.common.php— 상품/구매이력 저장·조회, 번호 생성, 등수 판정 등 공통 로직plugin/lotto/lotto.crawler.php— 동행복권 공개 API 기반 당첨번호 수집 로직plugin/lotto/cron_update.php— CLI 전용, 서버 crontab에 등록해 당첨번호를 주기적으로 갱신(선택 사항)plugin/lotto/css/style.css,plugin/lotto/css/admin.css— 화면 스타일plugin/lotto/js/lotto.js,plugin/lotto/js/admin.js— 번호 생성/관리자 팝업 스크립트plugin/lotto/data/.htaccess— 데이터 폴더 직접 접근 차단(Require all denied). 상품/구매이력/당첨번호 캐시 파일은 최초 실행 시 이 폴더 안에 자동 생성됩니다.
설치 방법
- 첨부된 zip을 그누보드 루트에 압축 해제합니다(내부 경로가
plugin/lotto/로 그대로 들어갑니다). plugin/lotto/data/폴더에 웹서버 쓰기 권한을 부여합니다(707). 상품/구매이력/당첨번호 캐시 파일이 이 폴더에 자동 생성·갱신됩니다.- 메뉴관리 등에서 원하는 메뉴를
/plugin/lotto/index.php(당첨번호),/plugin/lotto/random.php(번호 자동생성)로 연결합니다. - 최고관리자로
random.php접속 후 우측 상단 톱니바퀴(⚙) 아이콘을 클릭하면 생성 개수/필요 포인트 상품을 설정할 수 있습니다. 최초 접속 시 "1게임 무료" 상품이 자동으로 만들어집니다. - (선택) 매주 추첨 직후 당첨번호를 자동 갱신하려면 서버 crontab에
plugin/lotto/cron_update.php를 등록합니다(파일 상단 주석에 예시 명령이 포함되어 있습니다). 등록하지 않아도 페이지 접속 시 10분 간격으로 자동 갱신되므로 필수는 아닙니다.
※ 당첨번호는 동행복권 홈페이지가 공개한 데이터를 주기적으로 수집해 보여주는 것이며, 번호 생성 기능은 완전한 무작위 추첨으로 당첨을 보장하지 않습니다.
업데이트 내역
- 2026-07-24 — 최신 당첨번호 카드 아래에 등수별(1~5등) 당첨결과 표를 추가했습니다. 등위별 총 당첨금, 당첨게임 수, 1게임당 당첨금, 당첨기준, 비고(1등 당첨게임의 자동/수동/반자동 게임 수)를 확인할 수 있습니다. 동행복권 결과 페이지(
/lt645/result)가 실제로 쓰는/lt645/selectPstLt645InfoNew.doAPI 응답에 당첨금 정보가 이미 포함돼 있어, 별도 API 호출 없이 기존 크롤러(lotto.crawler.php)에서 함께 수집하도록 확장했습니다(data/lottoRes.csv저장 컬럼 확장, 옛 형식 캐시 파일과도 호환). - 2026-07-24 — 라이선스 안내 섹션을 추가했습니다(당첨번호 데이터 출처, 수집 스크립트 라이선스, 그누보드5(LGPL 2.1) 실행환경 의존성 고지). 아울러
lotto.crawler.php상단 주석에 있던 참고 블로그 글 출처 표기를 정리했습니다 — 현재 크롤러는 해당 글이 쓰던 구엔드포인트가 아닌 완전히 다른 신규 엔드포인트를 독자적으로 재구현해 사용 중이라 출처 표기 의무가 없다고 판단했습니다.
라이선스
- 당첨번호 데이터 — 동행복권(나눔로또) 홈페이지가 공개한 당첨정보를 주기적으로 수집해 보여주는 것이며, 동행복권이 공식 제공하는 API가 아닌 비공식 수집입니다. 당첨번호 자체는 저작권 보호 대상이 아닌 사실 정보이며, 본 플러그인은 동행복권과 무관합니다.
- 당첨번호 수집 스크립트(
lotto.crawler.php) — 자체 개발한 코드로 외부 오픈소스 코드를 포함하지 않으며, 별도의 오픈소스 라이선스가 적용되지 않습니다. 플러그인 전체와 동일하게 배포자가 지정한 라이선스를 따릅니다. - 실행환경 의존성 — 그누보드5(㈜에스아이알소프트, LGPL 2.1) 위에서 동작합니다.
common.php만 불러와 세션/DB/포인트 시스템을 이용할 뿐 그누보드5 코어 파일을 수정하거나 포함하지 않습니다.
첨부파일
- lotto.zip (20.8K) 3회 다운로드
댓글목록
등록된 댓글이 없습니다.

