MC Management 프론트엔드 개발 완료 — /mc-server/ 신청 페이지 구현 — 마인크래프트 서버 신청 관리 플러그인(gameboy-mc-management)의 프론트엔드 전체 개발 완료. ① URL 라우팅: /mc-server/ 경로 WordPress rewrite rule + query_vars 등록 ② 템플릿 렌더링: 커뮤니티 보드와 동일한 template_redirect + get_header()/include/get_footer()/exit 패턴 적용(기존 template_include 방식에서 변경 — 커스텀 query var 페이지에서 안정성 확보) ③ 신청서 목록 페이지: 접수 중/마감 상태 뱃지, 서버명, 마감일, 신청 인원 표시 ④ 개별 신청 폼: Google Forms 스타일 다크 카드 UI, 텍스트/textarea/select/radio/checkbox/minecraft_id 필드 타입 지원 ⑤ 로그인 필수: 비로그인 시 로그인 페이지로 리다이렉트 ⑥ 마인크래프트 ID 자동 입력: user_meta minecraft_id 연동(마이페이지에서 자동 입력됨 표시) ⑦ AJAX 제출: 중복 신청 방지, 60초 rate limit, 필수 필드 검증, MC ID 정규식 검증(영문/숫자/밑줄 3~16자), 제출 데이터 wp_gbmcm_submissions + wp_gbmcm_submission_data 테이블 저장 ⑧ 프론트엔드 CSS/JS: frontend/css/mc-forms.css (보라 액센트 다크 테마, 모바일 반응형) + frontend/js/mc-forms.js (AJAX 제출, 성공/실패 메시지 UI) ⑨ 푸터 링크: "참여하기" 섹션에 ⛏️ MC 서버 + 시즌 뱃지 자동 삽입 ⑩ 테스트 신청서 생성: "시즌 1 화이트리스트 신청" (서버: 새벽야생, 최대 20명, 마감: 2026-04-01, 필드 4개) — E2E 테스트 통과
SCP 디렉토리 중첩 문제 해결 — SCP 복사 시 gameboy-mc-management/gameboy-mc-management/frontend/ 이중 디렉토리 발생 → frontend/ 디렉토리를 올바른 위치로 이동 후 중첩 디렉토리 삭제
Nginx FastCGI 캐시 퍼지 — /mc-server/ URL의 이전 404 응답이 캐시되어 페이지 미표시 → 캐시 전체 퍼지 + nginx reload로 해결
방송 채널 수탉 페이지 SEO 전수 감사 + 7건 수정 — https://gameboy.kr/streamer/sutak/ 페이지 SEO 전수 감사 실시. 7건의 기술적 SEO 문제를 발견하여 전량 수정 완료. ① 중복 Canonical URL 해소 — 이 2개(홈페이지+스트리머 페이지) 출력되어 Google이 잘못된 canonical을 선택할 위험. 테마 gamernews_seo_is_handled() 함수에 /streamer/ 경로 감지 추가하여 사이트 전체 SEO 엔진이 방송 채널 페이지에서 실행되지 않도록 수정. ② 중복 Robots 메타 해소 — Rank Math + Streamer Hub 플러그인 각각 출력. disableRankMathOnStreamerPage()에 Rank Math robots/canonical 비활성화 추가. ③ 중복 Description/Keywords 메타 해소 — ①번 수정으로 동시 해결. ④ 외부 링크 보안 강화 — target="_blank" 69개 링크에 rel="noopener noreferrer" 누락(탭내빙 취약점). Streamer Hub 플러그인 내 11개소 일괄 추가. ⑤ 이미지 접근성 개선 — 트렌딩 게임 썸네일 31건의 alt="" 빈 속성을 게임 제목으로 교체 + loading="lazy" 추가. ⑥ 잘못된 Naver 인증 메타 제거 — naver-site-verification 값이 gameboy-streamer-hub(가짜 값)으로 설정되어 있어 삭제. ⑦ Rank Math 충돌 완전 해소 — 기존 OG/JSON-LD 비활성화에 더해 robots, canonical 출력도 비활성화하여 Streamer Hub 플러그인의 자체 SEO와 완전 분리
커뮤니티 보드 전체 SEO 전수 감사 + 3건 수정 — /board/ 하위 12개 페이지(메인, 자유게시판, 베스트, 카지노, 배틀, 퀴즈, 랭킹, 데일리 룰렛, 파이오니어, 개별 게시글 등) 전수 감사 실시. ① 파이오니어 페이지 SEO 미구현 (Critical) — /board/casino/pioneers/ 페이지에 전용 SEO 데이터가 없어 Title이 "커뮤니티"(제네릭), Canonical/OG URL이 /board/(홈으로 잘못 지정)으로 출력. seo.php에 casino_pioneers 전용 case 추가하여 제목("🏆 최초 기록자 명예의 전당"), 설명, canonical, keywords, OG 이미지, JSON-LD(WebPage) 완비. ② 랭킹 페이지 이미지 alt 누락 21건 — ranking.php 내 MVP 아바타 + 5개 탭 랭킹 아바타의 alt="" 빈 속성 6건을 사용자 닉네임으로 교체하여 접근성 및 이미지 SEO 개선. ③ 가짜 Naver 인증 메타 태그 제거 — seo.php에서 naver-site-verification 값 gameboy-kr-community(플레이스홀더) 출력 → 삭제 (방송 채널 페이지와 동일한 패턴)
방송 채널 랭킹 페이지(/streamers/) SEO 5건 수정 — 방송 채널 랭킹 페이지 전수 감사 + 중복 메타 태그 근본 해결. ① 중복 Keywords 메타 태그 해소 — gamernews_seo_is_handled() 함수가 /streamer/(개별 방송 채널)만 감지하고 /streamers/(랭킹 페이지)를 미감지하여 sitewide SEO 엔진이 이중 실행됨. /streamers/ 경로 감지 추가. ② 중복 JSON-LD 해소 — 동일 원인으로 CollectionPage+ItemList JSON-LD가 index.php와 sitewide SEO 양쪽에서 출력(5-6블록)→3블록으로 정상화. ③ Canonical URL 누락 수정 (Critical) — Rank Math가 standalone PHP 페이지에서 canonical 출력 실패하고, 기존 ob_start/ob_end_flush 패턴도 매칭 실패하여 canonical 0개 상태. 불안정한 ob_start 패턴을 제거하고 커스텀 SEO 훅에서 직접 출력으로 교체. ④ Dublin Core 중복 4건 제거 — sitewide SEO 엔진 스킵으로 DC.title/DC.description/DC.language/DC.publisher 자동 해소. ⑤ 외부 링크 보안 강화 — LIVE/채널 보기 target="_blank" 100건에 rel="noopener noreferrer" 일괄 추가(HTML 템플릿 2개소 + AJAX JS 동적 생성 2개소)
수다 채널 → GAMEBOY.KR 외부 채널 섹션 정리 (9개 → 3개) — 푸터 하단 gb-suda-channels-section 채널 카드를 9개에서 3개로 정리. 섹션 제목 "수다 채널" → "GAMEBOY.KR 외부 채널"로 변경, 부제 "수다와 소통하세요" → "GAMEBOY.KR과 소통하세요"로 변경. 유지: ① GAMEBOY.KR 디스코드(커뮤니티 & 실시간 소통), ② GAMEBOY.KR 이메일(문의 & 협업 제안), ③ 카카오톡 오픈채팅(태그 "소통과 송금 기능으로 후원"으로 변경). 제거: 수다 유튜브, 수다 치지직, 수다위키, 수다 인스타그램, 수다 X(Twitter), 수다 GitHub. 제거된 채널의 CSS(색상, glow, hover) + .gb-x-logo 클래스 일괄 삭제. 데스크톱/모바일 검증 완료
SteelSeries Arctis Nova Pro Wireless 딜 기사 원문 대비 7건 오류 수정 (Post #107259) — IGN 원문(Eric Song)과 대조하여 발견된 오류 일괄 수정. ① IGN CDN 제품 이미지 2장(PS5/PC 화이트 에디션, Xbox/PS5/PC 블랙 에디션) 삽입. ② 원문 기자명(Eric Song) 출처에 추가. ③ 하이퍼링크 5건(best gaming headsets 가이드, Nova Elite 제품, best wireless gaming headset 가이드, WC Freeze 젤 이어패드, Arctis Nova Pro 리뷰 by Kevin Lee) 삽입. ④ AI 환각 섹션 "한국 게이머를 위한 궁극의 오디오 솔루션인가?" 삭제. ⑤ AI 환각 댓글 유도 문구 삭제. ⑥ Eric Song 에디터 추천(개인 사용 경험 + WC Freeze 이어패드 업그레이드 팁) 섹션 추가. ⑦ DB source_domain NULL → www.ign.com 보정
엑스박스 AI 코파일럿 기사 이미지 깨짐 + 원문 대비 5건 오류 수정 (Post #107262) — The Verge 원문(Emma Roth)과 대조하여 발견된 오류 일괄 수정. ① 깨진 이미지(로컬 파일 참조) → Verge CDN URL(platform.theverge.com)로 교체하여 Xbox Series X 화이트 에디션 사진 정상 표시. ② 원문 기자명(Emma Roth) 출처에 추가. ③ 하이퍼링크 9건(GamesRadar 보도, 게이밍 코파일럿 소개, Windows 11 베타, Xbox Ally 핸드헬드, Xbox 공식 페이지, Project Helix, PC 게임 플레이, Phil Spencer 퇴임, Asha Sharma CEO 선임) 삽입. ④ AI 환각 섹션 2건("한국 게이머들이 주목할 AI 비서의 잠재력과 도전 과제", "경쟁 구도 — 소니 플레이스테이션/닌텐도 스위치 비교") 삭제. ⑤ 발췌문(excerpt) 정확한 요약으로 교체
마리오 + 래비드 스파크 오브 호프 기사 원문 대비 10건 오류 수정 (Post #107290) — Game Rant 원문(Aleksandra Kubas)과 대조하여 발견된 오류 일괄 수정. ① 원문 기자명(Aleksandra Kubas) 출처에 추가. ② takkk.jpg 콜라주 스크린샷 삽입. ③ 하이퍼링크 6건(닌텐도 eShop 스토어, OpenCritic 점수, 전략 RPG 랭킹, 스위치 2 출시 예정작, Rayman DLC 기사, 판매량 반등 기사) 삽입. ④ AI 환각 텍스트 3건("한국 게이머들은 자국 eShop에서 할인 여부를 확인해야", "카툰 폭력으로 E10+ 등급", "스컬 앤 본즈 연이은 출시 연기") 삭제. ⑤ AI 환각이 포함된 발췌문(excerpt) 정확한 요약으로 교체. ⑥ DB body_text 630자→3,793자 재추출, body_images/body_videos NULL → 정상 데이터 보정
Genesis Relic 기사 원문 대비 11건 오류 수정 (Post #107293) — IndieDB 원문(LiquidMeow)과 대조하여 발견된 오류 일괄 수정. ① 원문 기자명(LiquidMeow) 출처에 추가. ② 공식 YouTube 출시 트레일러 삽입. ③ Wishlist Actions 현황 차트 + Steam Deck Playable 등급 배지 이미지 2장 삽입. ④ "완벽 호환" 오역 → "Playable" 등급으로 정정(원문: 키보드 필요 가능성, 작은 텍스트 안내). ⑤ 2인 개발팀(2년 개발) 정보 추가. ⑥ 15% 출시 할인 $3.39 가격 정보 추가. ⑦ 에디터 기능(플레이어 커스텀 콘텐츠) 추가. ⑧ AI 환각 텍스트 3건(마인크래프트, 쿠키 클리커, 유니버설 페이퍼클립스 비교) 삭제. ⑨ AI 환각 섹션(한국 게이머 시장 분석) 삭제. ⑩ Steam 스토어 + IndieDB 게임 페이지 링크 삽입. ⑪ DB body_text/images/videos/source_domain/author 전부 NULL → 정상 데이터 보정
🔧
개선 5
수다 채널 → GAMEBOY.KR 외부 채널 섹션 정리 (9개 → 3개) — 푸터 하단 gb-suda-channels-section 채널 카드를 9개에서 3개로 정리. 섹션 제목 "수다 채널" → "GAMEBOY.KR 외부 채널"로 변경, 부제 "수다와 소통하세요" → "GAMEBOY.KR과 소통하세요"로 변경. 유지: ① GAMEBOY.KR 디스코드(커뮤니티 & 실시간 소통), ② GAMEBOY.KR 이메일(문의 & 협업 제안), ③ 카카오톡 오픈채팅(태그 "소통과 송금 기능으로 후원"으로 변경). 제거: 수다 유튜브, 수다 치지직, 수다위키, 수다 인스타그램, 수다 X(Twitter), 수다 GitHub. 제거된 채널의 CSS(색상, glow, hover) + .gb-x-logo 클래스 일괄 삭제. 데스크톱/모바일 검증 완료
뉴스 미디어 수집 엔진 v4.9.9 — IGN processedHtml 인라인 이미지 추출 신설(Step ④-0.5). IGN 딜/커머스 기사는 제품 이미지를 processedHtml 내 태그로 삽입하지만, 기존에는 feedImage(대표 이미지 1장)만 추출하여 다중 제품 이미지가 누락됨. processedHtml에서 태그를 직접 파싱하여 문맥 순서대로 이미지를 추출하고, 트래킹 픽셀(width=0|1), 아바타, 로고, 광고 이미지를 자동 필터링. ignimgs.com 외 외부 CDN 이미지(Amazon 등)도 수집 대상에 포함
뉴스 미디어 수집 엔진 v4.9.8 — Vox Media(The Verge, Polygon, SB Nation) CDN 이미지 고해상도 변환 지원. isVoxMediaDomain() 4개 Vox Media 도메인 자동 인식. normalizeVoxMediaImageUrl() platform.theverge.com CDN에서 crop 파라미터 제거 + w=2400 + quality=90 적용하여 원본 비율 고해상도 이미지 자동 업그레이드. gn_source_profiles에 www.theverge.com 프로필 추가(body_selector: .duet--article--article-body-component, remove_selectors: .duet--article--related, .duet--article--share-buttons 등 7개)
뉴스 미디어 수집 엔진 v4.9.7 — SVG 로고/아이콘 이미지 필터링 강화. Valnet CMS(GameRant 등)에서 본문 이미지 수집 시 사이트 로고 SVG 파일(gr-logo-icon-colored-light.svg, gr-db-logo-icon-colored-dark.svg)이 body_images에 혼입되는 노이즈 문제 해결. isIgnoredImage()에 logo-icon, /assets/images/.*logo, .svg$ 3개 패턴 추가. CLI 배너 버전 표시 v3.8→v4.9.7 동기화
뉴스 미디어 수집 엔진 v4.9.6 — IndieDB, ModDB(DBolical 계열) 2개 사이트를 cURL 차단 도메인 목록에 추가. 해당 사이트는 Cloudflare/Anti-bot 보호로 cURL 요청에 403을 반환하여 불필요한 15초 타임아웃 대기가 발생하던 문제 해결. 향후 IndieDB/ModDB RSS 수집 시 스크래핑 시도를 즉시 건너뛰어 수집 속도 향상
아크 레이더스 기사 원문 대비 6건 오류 수정 (Post #106979) — GamesIndustry.biz 원문과 대조하여 발견된 오류 일괄 수정. ① 원문 기자명(Alex Forbes-Calvin) 출처에 추가. ② Patrick Söderlund 초상사진 + Arc Raiders 게임 스크린샷 3장(총 4장) 삽입. ③ Marathon 비교 오역 수정(원문: "마라톤이 아크 레이더스보다 하드코어" → 기존 번역이 반대로 되어 있었음). ④ 원문 하이퍼링크 6건(게임 페이지, Nexon 매출 보고서, BF6 인원 감축/판매량, Marathon, YouTube Pachter 인터뷰) 삽입. ⑤ DB 원본 author /u/Iggy_Slayer(Reddit 유저명) → Alex Forbes-Calvin(원문 기자) 보정. ⑥ DB 원본 body_images NULL → 4개 이미지 보정
🔧
개선 1
뉴스 미디어 수집 엔진 v4.9.5 — GamesIndustry.biz를 Gamer Network 도메인 목록에 추가하여 향후 해당 사이트 기사의 본문 이미지(assetsio.gnwcdn.com CDN)가 자동으로 고해상도(width=1280) 변환 및 갤러리 이미지 추출 대상에 포함되도록 개선. 기존에 Future PLC 주석으로 잘못 분류되어 있던 것도 Gamer Network(ReedPop/IGN Entertainment) 소속으로 정정
🚨 MC 서버 제어 패널 — 서버 간 SSH 포트 공유 치명적 버그 수정 — 마인크래프트 서버 설정을 수정하면 다른 서버의 SSH 포트까지 함께 변경되는 치명적인 버그 수정. 근본 원인: 서버 수정 시 SSH 포트와 RCON 포트가 현재 입력된 값으로 항상 덮어쓰기되어, 이전에 열었던 다른 서버의 입력값이 잔존한 채 저장됨. 수정 모달이 기존 서버 데이터를 불러오지 않아 빈 폼이 기본값(22)으로 표시되면서 실제 포트(예: 9022)가 22로 덮어쓰기되는 문제 포함
🔧
개선 2
MC 서버 수정 모달 데이터 자동 로드 — 서버 수정 시 기존에 저장된 서버 정보(SSH 호스트, SSH 포트, SSH 사용자, SSH 키 경로, RCON 포트, 타임아웃)가 자동으로 폼에 채워져 표시됩니다. 이전에는 빈 폼이 열려 모든 정보를 다시 입력해야 했습니다
MC 서버 제어 패널 v1.2.0 업그레이드 — 서버별 독립 데이터 저장 보장, 수정 모달 폼 초기화 로직 분리, 포트/타임아웃 필드 조건부 업데이트로 데이터 무결성 강화
🚨 전체 사이트 긴급 복구 (약 14분 장애) — gameboy.kr, sudapeople.tv 등 전체 사이트가 접속 불가한 장애 발생 및 복구 완료. 근본 원인: 레거시 사이트의 DB 테이블이 손상(crashed)되어, 이를 조회하는 PHP 요청이 무한 대기 → 웹 서버 처리 워커 전체 포화(50/50) → 모든 사이트 동시 다운. DB 테이블 복구(REPAIR TABLE) 후 전체 서비스 정상화
⚡
성능 4
PHP 워커 포화 방지 3중 방어 구축 — 동일 장애 재발을 원천 차단하는 3가지 방어 조치 적용:
① 느린 요청 자동 종료 시간 단축 (5분 → 30초) — 장시간 응답 없는 요청이 워커를 점유하는 시간 대폭 축소
② 최대 워커 수 증가 (50 → 70) — DB 지연 시에도 다른 요청을 처리할 여유 워커 확보
③ 관리자 페이지 접속 속도 제한 추가 — 브라우저 자동 재시도 폭주로 인한 워커 재포화 방지
카지노 허브 페이지 리브랜딩 완료 — 타이틀 "포인트 카지노"→"골드 카지노", 서브타이틀 "포인트를 걸고"→"골드를 걸고", 안전장치 안내 "가상 포인트"→"가상 골드" (casino.php 템플릿 4건)
더블 오어 낫싱 리브랜딩 — 규칙 설명 "적립된 포인트 전부 잃음"→"골드 전부 잃음", "적립 포인트를 확정"→"적립 골드를 확정" (double-or-nothing.php 2건)
cx-system.js 구걸 수락 다이얼로그 P→G — 수락 확인 메시지 "P (내 포인트에서 차감)"→"G (내 골드에서 차감)", 버튼 텍스트 P→G (3건)
관리자 구걸 시스템 페이지(admin/beg.php) 전면 리브랜딩 — 탭 이름, 싱크 집계 헤더, 비용 단위(P→G), 골드 부자 목록/표시/설정 라벨, 전체기록 비용 단위 등 12건 일괄 수정
코드 내 주석·로그 메시지 전수 통일 (40건+) — gameboy-community-board.php(20건), casino.php(6건), beg-system.php(8건), point-system.php(6건), battle-ai.php(3건), content-feed.php(1건), quiz-system.php(1건), board.js(1건), cron-penalty-check.php(3건) 등 모든 "포인트"→"골드", "P"→"G" 주석 및 gb_add_point() 사유 텍스트 통일
wp-admin 대시보드 위젯(dashboard-widgets.php) 및 마이페이지(page-mypage.php) — 원격→로컬 동기화로 gb_total_gold 메타 키 사용 확인
🔧
개선 3
원격 서버 전수 grep: "포인트" 잔여 0건, "gb_total_points" 실 코드 참조 0건 (주석·마이그레이션 스크립트만 보존)
데스크톱/모바일 양쪽 라이브 검증: gn-gold-badge = casino-balance = gbb-pt-value = 214,999G
🚨 카지노/커뮤니티 골드 잔액 불일치 긴급 수정 — 상단 NavBar 골드 배지(214,999G), 카지노 잔액(124,547G), CX 스탯바(0G)가 각각 다른 값을 표시하던 심각한 불일치 버그 수정. 근본 원인: 골드 리브랜딩(v3.13.0)에서 출석 플러그인의 메타 키만 gb_total_points→gb_total_gold로 마이그레이션 완료됐으나, 카지노·커뮤니티 보드 플러그인은 구 메타 키 참조가 미수정 상태. CX 스탯바는 정의되지 않은 함수를 호출하여 항상 0 반환. 수정 8건: ① casino.php getBalance() 메타 키 통일 ② point-system.php fallback 메타 키 통일 ③ point-system.php gbb_get_points() 메타 키 통일 ④ beg-system.php 포인트 부자 쿼리 메타 키 통일 ⑤ beg-system.php 에러 메시지 P→G ⑥ casino.php 더블다운 에러 P→G ⑦ cx-system.js 카지노 잔액 P→G ⑧ top-nav.php CX 스탯바 미존재 함수→실존 함수 교체
beg-system.php 골드 리브랜딩 잔여 P→G 수정 3건 — 구걸 수락 시 차감 메시지, 포인트 부족 에러 2곳에서 P→G + 포인트→골드 표기 변경
The 7th Guest 리메이크 기사 누락 콘텐츠 복원 — Nintendo Life 원문에 있던 공식 YouTube 트레일러, 본문 스크린샷 4장이 미수집되어 누락되었던 기사에 원본 미디어 삽입. 출처 기자명(Ollie Reynolds) 추가, Push Square VR 리뷰 링크 및 25주년 리마스터 게임 페이지 링크 삽입. 원문에 없는 AI 환각 텍스트(헤르츠/반도 게임 언급) 삭제
배틀필드 6 무료 체험 기사 전면 재수정 — VG247 원문에 없는 AI 날조 섹션 3개(한국 게이머 전술 분석, 배틀필드 시리즈 역사, 콜 오브 듀티 비교)를 전량 삭제하고 원문 기반으로 재구성. 공식 YouTube 트레일러(Season 2 Free Trial Week), Hagental Base 맵 스크린샷, 출처 기자명(Sherif Saed) 추가. Battlefield Redsec 하이퍼링크 삽입
🔧
개선 1
뉴스 미디어 수집 엔진 v4.9.4 — Nintendo Life, Push Square, Pure Xbox, Time Extension 등 Hookshot CMS 계열 4개 사이트에서 본문 이미지가 저해상도 썸네일(445×245px)로 수집되던 문제 해결. 이미지 URL의 크기 지시자를 자동으로 원본 크기(large)로 변환하여 고해상도 이미지 수집 보장
Cursed Words 기사 누락 콘텐츠 복원 — PCGamesN 원문에 있던 게임 보드 스크린샷, 인게임 상점 스크린샷 2장이 미수집되어 누락되었던 기사에 원본 이미지 삽입. 출처 기자명(Paul Kelly) 추가, Steam 데모 링크 및 Slay the Spire 2 Steam 링크 삽입
🔧
개선 2
뉴스 미디어 수집 엔진 v4.9.3 — PCGamesN, WargamerN, TheLoadout, PocketTactics 등 Network N Media 산하 10개 게임 매체 자동 인식 추가. 갤러리 이미지 원본 크기 자동 추출 및 광고 노이즈 필터링 8개 패턴 추가
업데이트 로그 보안 정제 — 기존 업데이트 기록에 포함되어 있던 내부 구현 상세(파일 경로, 함수명, DB 스키마 등)를 일반적 설명으로 교체하여 보안 강화. 업데이트 기록의 내용과 가독성은 동일하게 유지
더블 오어 낫싱 연승 축하 효과 미작동 수정 — 더블 오어 낫싱(및 하이로우)에서 cashout 시 연승 신기록 축하 효과(불꽃놀이/신기록 오버레이)가 전혀 작동하지 않던 버그 수정. 근본 원인: 서버 응답에서 response.data.streak(인게임 연속 성공 횟수, 정수)와 response.data.win_streak(연승 시스템 데이터 객체)가 공존하는데, JS의 streak || win_streak 평가에서 정수 1이 truthy이므로 객체가 영영 사용되지 않음. streakData = 1 → streakData.is_new_record = undefined → 축하 효과 조건 영원히 불성립. win_streak 객체를 우선 참조하도록 ajaxComplete와 handleStreakResult 2곳 수정
더블 오어 낫싱 cashout 시 G 배지 누락 수정 — 연승 업데이트 함수 호출에서 $actual_배팅 금액 파라미터가 누락되어 cashout 시 마지막 배팅 필드가 0으로 저장되던 버그 수정
더블 오어 낫싱 P→G 잔여 표기 9건 수정 — JS(7건): 0P→0G, +XP→+XG, -XP 잃음→-XG 잃음, +XP 확정→+XG 확정. PHP 템플릿(2건): 현재 적립·다음 성공 시 0P→0G
더블 오어 낫싱 명예의 전당 G 배지 미표시 수정 — 더블 게임의 연승 기록·최초 기록자 명예의 전당에서 골드(G) 배팅 배지가 표시되지 않던 문제 수정. 원인: cashout 시 연승 업데이트 함수 호출에서 $actual_배팅 금액 파라미터 누락으로 last_배팅 금액 = 0 저장. 코드 수정 + 기존 DB 레코드 2건 마지막 배팅 필드 보정(0→1) 완료
카지노 바카라 뱅커 승리 시 연승 미반영 수정 — 바카라에서 뱅커(×1.95)에 배팅하여 승리해도 연승이 증가하지 않던 버그 수정. 근본 원인: 바카라 핸들러의 game_data 배열에 result 키가 누락되어, 연승 판정이 $profit > 0 폴백으로 처리됨. 1G 배팅 시 intval(1 × 1.95) = 1 → profit = 0 → 승리인데 패배 판정. 바카라·경마·룰렛·포커 4개 게임의 game_data에 명시적 result 키를 추가하여 배율 반올림과 무관하게 정확한 승패 판정 보장. 라이브 검증 완료(뱅커 8 vs 7 → +1G → 연승 바 "1연승" 정상 표시)
🚨 카지노 룰렛 휠 멈춤 위치-결과 불일치 심각 버그 수정 — 룰렛 휠이 서버 결과와 다른 숫자 위치에서 멈추는 치명적 비주얼 디싱크 버그 수정. 근본 원인: 프론트엔드 모듈의 회전 각도 계산에서 rgCurrentRotation(누적 회전량)이 이중 적용됨 — totalRotation = rgCurrentRotation + 1800 + targetAngle 계산 후 ((totalRotation%360)+360)%360 + rgCurrentRotation + 1800으로 한 번 더 합산. 첫 스핀(rgCurrentRotation=0)은 우연히 정상이나, 2번째 스핀부터 ~3600°+ 오차 누적으로 완전히 다른 세그먼트에 정지. 수정: 현재 회전 상태에서 목표 세그먼트까지의 델타 각도(delta)를 정확히 계산하는 방식으로 교체 → totalRotation = rgCurrentRotation + 1800 + delta. 10회 시뮬레이션(10/10 정확) + 라이브 2회 스핀(29번·25번 정확 정지) 검증 완료
카지노 연승·파이오니어 명예의 전당 G 배지 누락 수정 — 연승 기록 명예의 전당과 최초 기록자 명예의 전당에서 일부 기록에 골드(G) 배지가 표시되지 않던 문제 수정. 근본 원인: 배팅 금액별 분리 추적에서 통합 추적(배팅 금액=0)으로 전환 시, 프론트엔드가 배팅 금액 > 0 조건으로 G 배지를 표시하여 통합 레코드에서 배지 누락. DB 스키마에 마지막 배팅 필드 컬럼 추가하여 실제 배팅 금액을 별도 기록, 프론트엔드는 마지막 배팅 필드 기반 배지 표시로 전환. 레거시 중복 레코드(배팅 금액>0)도 랭킹 쿼리 WHERE 배팅 금액 = 0 필터로 정리. 수정 전 10개(5개 G 미표시) → 수정 후 5개(전부 G 표시)
관리자 사이드바 PAY 메뉴 위치 복원 — PAY 메뉴가 Wordfence 아래(사이드바 맨 하단)로 밀려나던 문제 수정. 근본 원인: 관리자 메뉴 모듈(필수 플러그인)의 메뉴 클래스 필터 필터(priority 99999)가 테마 함수 모듈의 menu_order 필터를 덮어쓰는 구조에서, 관리자 메뉴 모듈에 PAY 대시보드 슬러그 등 10개 slug이 누락되어 "남은 항목"으로 처리됨. 메뉴 슬러그 배열 배열을 테마 함수 모듈의 메뉴 순서 설정와 완전 동기화하여 PAY 메뉴를 뉴스 인사이트 다음/골드 관리 이전으로 복원
관리자 대시보드 출석·골드 위젯 오래된 데이터 표시 수정 — 출석·포인트 현황 위젯이 레거시 usermeta(포인트 메타 키, 239,956P)를 조회하여 최신 골드 데이터를 전혀 반영하지 못하던 심각한 버그 수정. 근본 원인: 골드 리브랜딩(v3.13.0)에서 usermeta key가 포인트 메타 키 → 골드 메타 키로 변경되었으나 대시보드 위젯 플러그인에 미반영. meta key를 골드 메타 키로 수정하고 위젯 제목·레이블·단위를 "골드/G"로 통일. 수정 후 골드 보유자 9→11명, 총 골드 239,956P→723,214G로 최신 데이터 정상 반영 확인
🐛 대시보드 위젯 meta key 롤백 + 골드 리브랜딩 잔여 P→G 전수 수정 — 이전 수정에서 대시보드 위젯의 meta key를 골드 메타 키로 변경했으나, 실제 포인트 시스템(출석 모듈)이 포인트 메타 키 메타 키를 사용하여 데이터 불일치 발생. 포인트 메타 키로 롤백하고 UI 표시만 "골드/G"로 통일. 동시에 사이트 전체에서 잔존하던 "포인트/P" 표기를 골드(G)로 일괄 변경: ① 커뮤니티 보드 상단 배너 내 골드 XXXG ② 8개 카지노 게임 잔액 표시 ③ 배팅 칩 라벨(1G~500G) ④ 배팅 에러 메시지 ⑤ 출석 토스트 알림 ⑥ 프론트엔드 모듈 실시간 잔액 업데이트
🐛 카지노 연승 기록 초기 로딩 실패 수정 — 카지노 게임 페이지 진입 시 연승 표시 바가 0/0/- 으로 표시되던 문제 수정. 카지노 연승 데이터 AJAX 핸들러가 서버에 미배포되어 403 Forbidden 반환. SFTP 동기화 후 페이지 로드 시 정상적으로 연승 데이터(현재 연승, 최고 연승, 게임별 1위) 로드 확인. 게임 결과 후에도 연승 바가 실시간 업데이트됨
🐛 카지노 전 게임 연승 판정 로직 근본 수정 — 승리해도 연승이 기록되지 않아 축하 메시지·애니메이션·이펙트가 표시되지 않던 핵심 버그 수정. 근본 원인: 연승 판정을 $profit > 0(수익 양수)으로 판단했으나, 1G 배팅 시 intval(1 × 1.95) = 1이 되어 payout = bet → profit = 0 → 승리인데 패배 판정. 게임 데이터의 실제 결과(result=win/win=true)를 우선 참조하도록 수정하여 전 게임(9종) 정확한 승패 판정 보장
🐛 카지노 연승 바 실시간 반영 안 되는 문제 수정 — 칩 크기(배팅 금액) 변경 시 연승이 끊기고 0으로 리셋되던 문제 수정. 근본 원인: 연승을 배팅 금액별로 분리 추적(예: 1G 연승, 10G 연승 별도)하여, 1G→10G 칩 전환만으로 연승이 새로 시작됨. 게임 유형별 통합 연승(배팅 금액 무관)으로 변경하고, 기존 분산 데이터를 통합 레코드로 마이그레이션. 칩 크기를 자유롭게 변경하면서도 연승이 유지됨
하이로우·더블 오어 낫싱 연승 기록 과소 반영 수정 — 세션 기반 게임(하이로우, 더블 오어 낫싱)에서 인게임 연속 성공 횟수가 연승 기록에 반영되지 않던 근본적 버그 수정. 근본 원인: 하이로우에서 8연속 성공 후 캐시아웃해도 연승 기록에 +1만 반영됨(실제로는 +8이어야 함). 연승 업데이트 함수에 $streak_increment 파라미터 추가, 결과 기록 함수에서 game_data['streak'](인게임 연속 성공 수)를 자동 감지하여 정확한 연승 증가폭 반영. 기존 데이터(수다 하이로우: 4→20연승) 보정 완료
더블 오어 낫싱 연승 기록 배팅 금액 필드 미전달 수정 — 더블 오어 낫싱의 연승 업데이트 함수 호출 3곳(첫 도전 실패, 도전 실패, 캐시아웃)에서 배팅 금액 필드가 누락되어 모든 연승 기록이 배팅 금액=0으로 저장되던 버그 수정. 캐시아웃 시 인게임 연속 성공 횟수($saved['streak'])도 streak_increment로 정상 전달되도록 수정. 잘못 저장된 배팅 금액=0 데이터 정리 완료
게임 결과 전 연승 축하 표시 타이밍 버그 수정 — $(document).ajaxComplete 전역 후킹으로 AJAX 응답 즉시 연승 축하 오버레이가 표시되어, 게임 결과(카드 딜링/레이스/휠 회전 등)가 표시되기 전에 신기록 축하가 먼저 나오던 심각한 UX 버그 수정. 수정: 바 업데이트(현재 연승·최고 기록)는 즉시 수행하되, 신기록 축하 오버레이는 게임별 애니메이션 완료 시간(블랙잭 5초, 경마 30초, 룰렛 5.5초 등)을 고려한 지연 후에만 표시
FGS Live From GDC 2026 기사 보강 (Post #106448) — 출처 기자명(Jordan Oloman) 추가. 원문(GamesRadar+)의 주요 게임 이미지 2장(슬래시 제로, 딥 락 갤럭틱: 로그 코어) 삽입. Emberville 성우진 정보(더그 코클, 아부바카르 살림 등) 보강. FGS Montage 섹션 누락 게임명(Romestead, Permafrost, Distant Shore: BRETAGNE, Deesicks) 추가. SQL 직접 UPDATE 사용(WordPress 업데이트 함수 iframe 삭제 방지)
DB 미디어 재추출 (#88812) — 본문/이미지/영상 데이터가 모두 NULL이던 GamesRadar 기사를 media_extractor --id=88812로 재추출. 13개 이미지 + 7386자 본문 정상 수집. Future PLC 셀렉터(.text-copy, .bodyCopy)는 정상 작동 확인 — 원인은 최초 수집 시 일회성 네트워크 오류로 판단
🆕
신규 기능 6
🔥 카지노 연승 기록 시스템 — 카지노 전 게임(블랙잭, 슬롯, 홀짝, 하이로우, 룰렛, 바카라, 경마, 포커, 더블 오어 낫싱)에 연승 추적 시스템 도입. 현재 연승·최고 연승·게임별 1위 기록을 실시간 추적. 신기록 달성 시 축하 오버레이(불꽃 파티클+골드 컨페티) 애니메이션 자동 재생
🏆 최초 기록자 명예의 전당 — 각 게임에서 연승 기록을 최초로 달성한 선구자를 영구적으로 기록하는 시스템. 한 번 이름이 올라가면 신기록이 경신되어도 최초 기록자의 이름은 영원히 보존됨
🏆 최초 기록자 전용 페이지 (/board/casino/pioneers/) — 전체 게임별 최초 기록자를 게임 카테고리별로 보여주는 전용 명예의 전당 페이지. 히어로 헤더, 요약 통계(총 기록 수/기록 보유자/기록 보유 게임/최고 연승), 9개 게임별 상세 기록, 미기록 게임 도전 유도 UI
카지노 허브 명예의 전당 섹션 (/board/casino/) — 카지노 메인 페이지 하단에 🔥 연승 기록 명예의 전당 + 🏆 최초 기록자 하이라이트 2개 섹션 추가. 최초 기록자 전용 페이지로의 바로가기 링크 포함
💰 배팅 골드별 연승·파이오니어 기록 분화 — 연승 기록과 최초 기록자가 이제 배팅 골드(1G, 10G, 30G, 500G 등)별로 독립 추적됨. DB 스키마(카지노 연승 테이블, 파이오니어 테이블)에 배팅 금액 필드 컬럼 추가, 유니크 키를 (user_id, game_type, 배팅 금액)로 확장. 카지노 허브·파이오니어 페이지에 배팅 골드 뱃지(예: 500G, 10G) UI 표시. 내부 버전 업데이트
🎰 카지노 관리자 페이지 (wp-admin > 커뮤니티 > 🎰 카지노 관리) — 연승 기록·최초 기록자(파이오니어) 데이터 조회 및 초기화 기능. 3개 초기화 버튼(연승만/파이오니어만/전체), 현재 기록 현황 테이블(유저·게임·배팅·연승·날짜), JavaScript 확인 다이얼로그로 실수 방지
🔧
개선 4
연승 표시 바 — 개별 게임 페이지에서 현재 연승·최고 연승·게임별 1위를 표시하는 컴팩트 바. 3연승 이상 시 불타는 글로우 효과
신기록 축하 연출 — 연승 신기록 달성 시 풀스크린 오버레이(회전 링+파티클+불꽃놀이) 자동 재생. 탭/클릭으로 닫기
모바일 UX 최적화 — 연승 바, 축하 오버레이, 명예의 전당 페이지 모두 모바일 반응형 대응. 라이트 모드 호환
카지노 허브 섹션 안내 박스 — 수익왕·연승·최초 기록자 3개 섹션에 로직 설명 박스 추가. 초기화 주기(수익왕: 매주 월요일/연승·파이오니어: 영구), 기록 방식(배팅 골드별 독립), 세션 게임 연승 확정 조건 등을 간결한 안내 텍스트로 표시. 다크/라이트 모드·모바일 반응형 대응
MediaExtractor v4.9.2 — Valnet CMS YouTube 추출 3패턴 전면 개선 — DualShockers/TheGamer/GameRant 등 Valnet 계열에서 youtubeEmbedCodes = [](빈 배열)인 기사에서도 YouTube ID 추출 가능하도록 3패턴 보강:
패턴 2: window.arrayOfEmbeds["VIDEO_ID"] — 기존 배열([]) 매칭에서 객체 키(["ID"]) 매칭으로 수정
패턴 3(신규): — Valnet CMS가 JS 동적 YouTube를 마크업하는 div의 id 속성에서 직접 추출
패턴 4: HTML 디코딩 후 youtube.com/embed/ID 전역 검색 — HTML 엔티티 인코딩(", < 등)으로 매칭 실패하던 문제 해결
Aphelion 기사(#88985) 테스트 결과 U6xCfctMVRE 정상 추출 확인
🐛
버그 수정 2
Aphelion 기사 보강 (Post #106445) — 출처 크레딧에 기자명(Tay Garcia) 추가, ESA(유럽 우주국) 표기 보강. WordPress 업데이트 함수에 의한 iframe 삭제 문제 → SQL 직접 업데이트로 복원. DB 원본(#88985) 영상 데이터 NULL→1개(YouTube U6xCfctMVRE) 보정
⚠️ 주의: WordPress 업데이트 함수는 iframe을 WordPress 필터 필터로 제거 — iframe 포함 콘텐츠는 반드시 DB 직접 업데이트(SQL) 사용 필요
MediaExtractor v4.9.1 — Gamer Network YouTube youtube-nocookie.com + data-src 패턴 추가 — Rock Paper Shotgun 등 Gamer Network 계열 사이트는 iframe에 src="youtube-nocookie.com/embed/..." + data-src="youtube.com/embed/..." 이중 속성 사용. 기존 패턴 2는 youtube.com/embed/만 매칭하여 RPS 기사에서 YouTube 비디오 미수집. data-src 우선 + youtube-nocookie.com 정규식 추가, .video-stage 외부 iframe도 검색하여 누락 방지. ReVamp 기사 (#88786) 테스트 결과 ijIg_qm3SmU 정상 추출 확인
🐛
버그 수정 1
ReVamp 기사 Steam ID 오류 수정 (Post #106432) — AI 기사에서 ReVamp 스팀 앱 ID가 2681020(존재하지 않는 페이지)으로 잘못 생성됨 → 올바른 ID 3295000으로 5건 전량 교체. YouTube 트레일러(ijIg_qm3SmU, ReVamp Reveal Trailer) 미삽입 → 첫 번째 H3 앞에 wp-block-embed-youtube 블록 삽입. AI 환각 텍스트("이미지: ReVamp의 독특한 모듈식 성 시스템과 전투 장면을 담은 스크린샷이 공개되었습니다.") 삭제. 출처 크레딧에 기자명(Oisin Kuhnke) 추가. DB 원본(#88786) 영상 데이터 NULL→1개(YouTube), 이미지 데이터 1→2개 보정
MediaExtractor v4.9 — IGN 슬라이드쇼 갤러리 cURL 자동 추출 — IGN 처리된 HTML 내 data-transform="slideshow" + 슬러그 속성 감지 시 /slideshows/{slug} 페이지를 추가 cURL 요청하여 SSR된 태그에서 ignimgs.com 갤러리 이미지 자동 추출. Blight: Survival 기사 테스트 결과 10장 중 6장(feedImage 1 + SSR 갤러리 5) 자동 수집 성공(v4.8 대비 6배). 데이터 속성 유형별 분기: slideshow→갤러리 이미지 추출, ignvideo→비디오 URL 생성. IGN GraphQL API(mollusk.apis.ign.com/graphql) 조사 완료 — introspection 비활성화로 직접 쿼리 불가, 향후 역공학 시 전량 추출 가능성 확인
⚠️ 한계: IGN SSR은 슬라이드쇼 이미지의 약 50%만 렌더링 (나머지는 클라이언트 JS에서 lazy load). 전량 추출에는 headless browser 또는 GraphQL 역공학 필요