Commits
GitHub 커밋 기반으로 자동 생성된 개발 기록
git2blog
영어 버전 Hashnode/DEV.to 발행 막아둔 거 풀었다
🤖 991 in / 1095 out / 2086 total tokens 영어 버전을 Radar Blog에서만 발행한다고 가정하고 Hashnode랑 DEV.to는 무조건 스킵하게 해뒀는데, 이게 아니었다. 플랫폼별로 영어 버전 발행 여부를 따로 설정할 수 있어야 하는데 하드코딩으로 막아버린 셈이다. version.language === "en" &&
영어 블로그도 자동 발행되게 만듦
🤖 1041 in / 1109 out / 2150 total tokens 기존엔 한국어 포스팅만 자동으로 올라가고, 영어 버튼은 수동으로 처리하거나 아예 건너뛰게 해뒀다. 이번에 publish.sh 하나로 영어 파일도 Hashnode랑 DEV.to에 동시에 올라가도록 통합했다. 핵심은 언어 감지 후 publication ID 분기처리. _en_ 파일
X와 Threads 자동 발행 기능 추가
🤖 1280 in / 921 out / 2201 total tokens 블로그 발행 시 X(구 Twitter)와 Threads에 홍보 포스트가 자동으로 올라가도록 했다. 새 플랫폼 모듈 두 개를 만들어 레지스트리에 등록했다. X는 OAuth 1.0a 기반으로 트윗을 280자 내로 생성하고, Threads는 OAuth 2.0 + Graph API로 5
LAMDiceBot
주사위 게임 9단계 튜토리얼 구현 — 호스트/비호스트 분기 처리
🤖 1993 in / 1228 out / 3221 total tokens 주사위 게임에 온보딩 튜토리얼 9단계를 달았다. 방장이냐 아니냐에 따라 설명 내용이 다르게 나온다. 기존엔 4단계로 계획했는데, 실제 유저 플로우를 따라가다 보니 9단계까지 늘어났다. 주사위 굴리기 버튼, 채팅 명령어(/주사위), 결과 확인까지 하나씩 짚어주는 게 낫겠더라. i
채팅 랭킹 버튼 공통화 — ChatModule.init()에서 자동 삽입
🤖 1913 in / 1062 out / 2975 total tokens 각 게임마다 하드코딩되어 있던 랭킹 버튼을 ChatModule.init()에서 자동으로 넣어주도록 바꿨다. 원래는 horse-race, roulette에서 채팅 섹션 헤더에 버튼을 직접 박아놨었다. dice, crane-game에는 아예 없었고. 이걸 chat-shared.js
랜딩 페이지 스킵 — 접속하자마자 게임 로비로
🤖 1707 in / 1037 out / 2744 total tokens 루트 경로 / 접속 시 index.html 대신 /game으로 리다이렉트하도록 서버 라우트를 수정했다. 불필요한 랜딩 페이지 거치지 않고 바로 본론으로. 기존엔 res.sendFile()로 index.html을 내려줬는데, 이걸 res.redirect('/game')으로 변경.
주사위 게임 조기종료 버그 잡은 삽질 기록
🤖 3399 in / 1462 out / 4861 total tokens 유저가 게임 중간에 나가면 아직 굴리지 않은 사람이 있어도 게임이 바로 끝나버리는 버그였다. 원인은 간단했다. rolledUsers 배열에서 퇴장한 유저를 빼주지 않으니까 "모두 굴렸니?" 체크가 true로 잘못 나오는 것. 서버 사이드에서 disconnect, leaveRoo
AdSense 승인 받고나서 22페이지에 광고 43개 박았다
🤖 6240 in / 1440 out / 7680 total tokens 드디어 AdSense 승인이 떴다. 승인 기다리는 동안 구조만 잡아놨는데, 이제 실제 슬롯 ID를 넣을 차례다. 22개 페이지, 43개 슬롯. 손으로 하나씩 넣다간 미칠 것 같아서 패턴만 만들어두고 복사했다. 핵심은 게임 페이지에서 자동 광고 끈 거다. 앵커 광고, 비그네트 광
경마 순위 안 맞던 버그: 클라이언트와 서버가 보는 '선두'가 달랐다
🤖 1449 in / 1473 out / 2922 total tokens 경마 게임에서 화면상 도착 순서랑 실제 순위가 다르게 나오던 버그를 잡았다. 원인은 슬로우모션 트리거 시점이 서버랑 클라이언트에서 달랐던 것. 클라이언트는 rank === 0으로 미리 정해진 1등을 찾아서 슬로우모션을 걸었다. 근데 서버는 "실제로 앞서가는 말"을 기준으로 판정