광밤
광밤
Moderator
🏅 AI 마스터
🎖️ 마스터 파트너
🚀 SNS 챌린지 달성자
☕ 커피챗 오픈

Claude Code로 Godot 게임 온라인 랭킹 만들기: 우리 반끼리 겨루는 TOP 10

우리 반끼리 TOP 10, 반 코드 하나로 함께 겨루는 AX 서바이벌 온라인 랭킹 커버

Godot 게임 온라인 랭킹은 모두의 점수를 모아 둘 온라인 저장소 하나만 붙이면 만들 수 있어요. 저는 클로드 코드(Claude Code)와 무료 저장소 수파베이스(Supabase)로 전체 TOP 10과 우리 반 TOP 10을 붙였어요. 2026년 10월 7일, Godot 4.7 기준 기록이에요.

1부에서는 게임을 만들었고, 2부에서는 itch.io에 올려 링크 하나로 누구나 플레이하게 만들었어요. 이번 3부는 그 게임에 "함께 겨루는 재미"를 붙인 이야기예요.

1부 글: https://www.gpters.org/nocode/post/creating-godot-2d-game-fQSJdEuiTLNLMsg

2부 글: https://www.gpters.org/nocode/post/claude-codero-godot-geim-itch-io-baepohagi-web-gonggaeggaji-1sigan-keos-XsrBKVu07LGTZlj

랭킹이 있는데 나 혼자만 보였어요

저는 지피터스에서 기업 대상 AX 교육과 B2B 사업을 총괄하고 있어요. 이 글의 숫자는 전부 제 작업 기록에서 직접 잰 거예요.

웹으로 공개하고 나서 이상한 점이 보였어요. 게임에 TOP 10 랭킹이 있는데, 사람마다 자기 기록만 보이는 거예요. 점수가 각자의 브라우저 안에만 저장돼서 그랬어요. 경쟁이 안 되니 다시 할 이유도 약했어요.

그래서 이렇게 요청했어요.

💬 랭크가 누적되게 수정해줄래?
지금은 개인 랭크만 확인되어서
서로의 경쟁 유발이 되지 않아

클로드 코드는 두 가지를 먼저 물었어요. 랭킹을 어떤 범위로 모을지, 점수를 어디에 모을지요. 저는 "전체 랭킹 + 반 코드 랭킹"과 "수파베이스"를 골랐어요.

점수를 모으는 온라인 저장소는 이렇게 생겼어요

게임이 점수를 보내고, 공개용 열쇠로 문을 열고, 저장소는 추가와 조회만 허용하는 온라인 랭킹 구조

수파베이스는 모두의 점수를 적어 두는 온라인 공책이라고 생각하면 쉬워요. 게임은 이 공책을 여는 공개용 열쇠를 들고 있어요. 게임 파일은 누구나 열어 볼 수 있으니, 이 열쇠도 사실상 공개돼 있어요.

그래서 공책 쪽에 규칙을 걸었어요. 공개용 열쇠로는 점수를 "추가"하고 "조회"하는 것만 돼요. 남의 점수를 고치거나 지우는 건 안 돼요. 이름은 12자까지, 점수는 4만 점까지만 받아요.

반 코드는 교육 회차마다 새로 정하는 이름표예요. 결과 화면에 반 코드를 넣으면 같은 반끼리만 겨루는 랭킹이 따로 떠요. 지피터스 반 코드는 GPTERS로 정했어요.

출입증 만들기에서 한 번 헤맸어요

공책에 점수 칸을 만들려면 클로드 코드가 수파베이스에 들어갈 출입증(접속 토큰)이 필요했어요. 처음엔 클로드 코드가 제 브라우저 로그인을 빌려 다 하려고 했는데, 로그인을 옮길 수 없어서 막혔어요.

권한을 고르는 화면에서도 클로드 코드의 안내가 몇 번 빗나갔어요. 그때 제가 물었어요. "프로젝트부터 만들어야 하지 않아?" 그게 정답이었어요.

프로젝트를 먼저 만들고 나니 출입증은 단순해졌어요. 그 프로젝트 하나, 데이터베이스 권한 하나만 주고, 7일 뒤 저절로 사라지게 했어요. 로그인이나 권한처럼 계정에 걸린 일은 사람이 화면에서 직접 하는 게 제일 빨랐어요.

다른 회사 AI에게 한 번 더 검사받았어요

저는 클로드 코드에 미리 작업 규칙을 적어 두고 써요. 이런 규칙 묶음을 하네스라고 불러요. 그중 하나가 "보안, 결제, 데이터베이스 구조를 바꾸는 위험한 작업은 다른 회사 AI에게 한 번 더 검사받기"예요. 큰 수술 전에 다른 의사 의견을 듣는 것과 같아요.

클로드가 서버 규칙을 짜고, 다른 회사 AI가 3번 검사하고, 지적 7건을 고쳐서 통과하는 흐름

이번 작업은 데이터베이스를 새로 만드는 일이라 이 규칙이 자동으로 걸렸어요. 클로드 코드가 짠 규칙을 오픈AI의 코덱스(Codex)가 검사했고, 지적이 7건 나왔어요.

예를 들면 이런 것들이에요. 여러 명이 동시에 저장하면 도배 방지 숫자 세기가 엇갈릴 수 있다. 이름 앞뒤에 공백을 잔뜩 넣으면 12자 제한을 피할 수 있다. 저는 생각도 못 한 구멍들이었어요. 고치고 다시 받기를 반복해서 세 번째에 통과했어요.

공개 열쇠로 직접 공격해 봤어요

검사를 통과한 뒤, 클로드 코드가 게임과 똑같은 공개용 열쇠로 공책을 직접 공격해 봤어요.

보안 테스트 10종 중 허용된 시도 3개는 점수 추가와 랭킹 조회, 막힌 시도 7개는 수정과 삭제와 99,999점 등

점수 추가와 랭킹 조회는 됐어요. 남의 점수 고치기, 지우기, 99,999점 넣기, 13자 이름, 저장 시각 바꾸기 같은 7가지는 전부 막혔어요. 만든 규칙이 진짜로 지켜지는지 눈으로 확인하니 안심이 됐어요.

배포하고 나서 제가 버그를 찾았어요

새 버전을 올리고 직접 한 판 했는데, 랭킹 칸에 "온라인 연결이 안 돼서 이 기기 기록만 보여요"가 떴어요.

배포 직후 결과 화면에 온라인 연결이 안 돼서 이 기기 기록만 보여요라는 안내가 뜬 모습

이상한 건 점수는 서버에 잘 쌓이고 있었다는 거예요. 그새 다른 참여자들 기록도 8건이나 들어와 있었어요. 막힌 건 "랭킹 불러오기" 하나였어요.

원인은 압축이었어요. 서버는 데이터가 쌓이면 압축해서 보내는데, 브라우저가 이미 풀어 준 걸 게임이 한 번 더 풀려다 실패했어요. 처음 테스트할 땐 서버가 비어 있어서 압축을 안 했고, 그래서 못 잡았던 거예요. 설정 한 줄로 고쳐서 바로 다시 올렸어요.

고친 뒤 결과 화면에 전체 TOP 10 8건과 GPTERS반 TOP 10 4건이 함께 뜬 모습

이번에 배운 건 하나예요. 온라인 기능은 텅 빈 상태가 아니라 실제 데이터가 들어 있는 상태로 테스트해야 해요.

숫자로 보면

제 작업 기록에서 직접 잰 숫자예요.

  • 서버 규칙 작성부터 게임 코드, 실제 한 판 검증까지: 14분
  • 다른 회사 AI 검사: 3번, 지적 7건 반영
  • 보안 테스트: 10가지 모두 의도대로 (허용 3, 거부 7)
  • 버그 수정 업데이트 전송량: 200KB (게임 전체 40MB 중)
  • 쌓인 기록: 10건, 그중 GPTERS반 5건 (2026년 10월 8일 게시 시점)

따라 해 보세요: 온라인 랭킹 붙이는 순서

  1. 수파베이스에 가입하고, 서울 지역으로 프로젝트를 먼저 만들어요.
  2. 계정 설정의 Access Tokens에서 그 프로젝트 하나, Database 권한 하나만 준 출입증을 7일짜리로 만들어요.
  3. 클로드 코드에게 아래 프롬프트를 보내요.
  4. 다 만들었으면 기록을 몇 개 넣은 상태로 다시 테스트해 달라고 해요.

💬 내 고도(Godot) 웹 게임에 수파베이스로 온라인 랭킹을 붙이고 싶어. 전체 TOP 10과 반 코드별 TOP 10을 보여 줘. 게임에는 공개용 키만 넣고, 서버 규칙으로 점수 추가와 조회만 허용해 줘. 데이터베이스를 만들기 전에는 다른 AI에게 보안 검토를 받고, 끝나면 기록이 있는 상태로 직접 테스트해 줘.

게임은 https://fe63.itch.io/ax-survival 에서 할 수 있어요. 한 판 끝나면 반 코드에 gpters, 이름에 닉네임을 넣고 GPTERS반 랭킹에 도전해 보세요!

지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만