House Duck
← 모든 포스트

HOUSE DUCK · KOREAN ORIGINAL

게임 어드민 페이지 만들기 | 유저도 없는데 관리자 콘솔부터 만든 이유

결론부터 말하자면,

나는 Supabase를 직접 만지기 싫어서

게임 관리자 콘솔을 만든 게 아니다.

 

바이브코딩을 할 때도 터미널을 좋아하는 사람이 있고,

데스크톱 프로그램과 GUI를 좋아하는 사람이 있다.

 

나는 확실히 후자다.

 

서버 운영도 로그와 테이블을 하나씩 열어보는 것보다

필요한 정보가 가공된 화면으로 보고 싶었다.

 

가능하다면 노트북을 펴지 않고도,

휴대폰으로 상태를 확인하고 필요한 운영까지 끝내고 싶었다.

 

허용된 Google 계정만 들어올 수 있는 House Duck 비공개 콘솔

 

유저도 없는데 어드민부터 만들었다.

아직 Quirky Ball은 정식 출시 전이다.

 

그런데 House Duck Console에는 벌써

분석, 플레이어, 운영, 구매·환불, CS, 감사 기록 메뉴가 있다.

 

조금 순서가 이상해 보일 수 있다.

 

하지만 게임을 출시하고 문제가 생긴 다음

그때 가서 운영 도구부터 만드는 건 더 늦다고 생각했다.

 

유저가 게임을 얼마나 오래 했는지,

어디에서 이탈했는지,

다음 날 다시 돌아왔는지,

광고가 너무 자주 나가지는 않았는지를

출시 후에야 처음 고민하고 싶지 않았다.

 

이미 업계에 다니면서

수많은 시행착오를 보면서

내린 결론이었다.

 

어차피 요구사항만 확실하면

다 해내주는 ai가 있는데 무슨 문제인가?

 


 

터미널 대신 한 화면에서 판단하고 싶었다.

Supabase는 게임의 데이터를 저장하고,

인증과 서버 기능을 연결하는 기반이다.

 

하지만 데이터베이스의 테이블은

운영자가 바로 답을 얻는 화면은 아니다.

 

플레이 시간과 완료율, 재방문율, 광고 시청률,

젬과 스태미나 사용량을 각각 찾아보는 것과

“지금 이 게임에서 이상한 부분이 무엇인가?”를 한눈에 보는 것은 다르다.

 

그래서 원시 데이터를

보기 좋게 늘어놓는 데서 끝내지 않고,

내가 실제로 판단할 질문으로 바꾸려고 했다.

 

플레이어가 더 쌓여야 판단할 수 있으면

괜히 그럴듯한 결론을 만들지 않고 그대로 표시한다.

 

플레이 시간·완료율·재방문·광고를 질문 형태로 정리한 실제 분석 화면

 

나에게 필요한 건 예쁜 그래프가 아니라

다음 업데이트에서 무엇을 먼저 고칠지 알려주는 화면이었다.

 


 

분석에서 이상한 유저를 보고 바로 처리하고 싶었다.

인사이트를 확인한 뒤

다시 Supabase나 다른 도구를 열고 싶지 않았다.

 

플레이어 목록에서 닉네임과 표시코드를 검색하고,

게임 수와 최고 점수, 재화, 최근 플레이를 확인한다.

 

비정상적인 점수는 랭킹에서 제외하거나 보정하고,

필요하면 아이템을 지급·회수하고

특정 유저에게 보상 우편을 보낼 수 있게 만들었다.

 

운영 화면에서는

최소 지원 버전과 공지를 바꾸고,

전체 보상 우편도 보낼 수 있다.

 

구매와 환불 기록을 보고,

support@houseduck.in으로 들어온

문의를 같은 콘솔에서 처리하는 흐름도 넣었다.

 

내가 말하는 유저 제재는

버튼 하나로 사람을 막아버리는 자동 제재가 아니다.

 

실제 기록을 확인하고,

점수 제외나 아이템 회수처럼

필요한 조치만 선택하는 방식에 가깝다.

 

중요한 변경에는 사유를 입력하고 한 번 더 확인하게 했으며,

누가 무엇을 바꿨는지도 감사 기록에 남긴다.

 


 

노트북 앞에 있을 때만 운영하고 싶지 않았다.

1인 개발자는 개발자이면서 QA고,

기획자이면서 고객센터이기도 하다.

 

항상 책상 앞에 앉아 있을 수는 없다.

 

밖에서 오류 제보가 들어오거나,

업데이트 직후 지표가 이상해졌을 때

휴대폰으로 상태를 보고 제한된 운영 기능을 실행하고 싶었다.

 

물론 모든 위험한 기능을 모바일에 열어두겠다는 뜻은 아니다.

 

조회는 빠르게,

변경은 필요한 것만,

되돌릴 수 없는 작업은 확인과 기록을 거치게 만드는 것이 목표다.

 

GUI가 좋았던 이유도 여기에 있다.

작은 화면에서도 지금 어디를 보고 있고,

어떤 버튼이 실제 데이터를 바꾸는지 구분하기 쉬웠다.

 


 

보안은 확실하게  처리했다.

콘솔은 외부에 공개하는 서비스가 아니다.

 

먼저 허용된 Google 계정으로 로그인하고,

그다음 나만 바로 떠올릴 수 있는 질문에 한 번 더 답해야 열린다.

 

Google 로그인 뒤 한 번 더 확인하는 개인 질문

 

“내가 처음 한 게임 이름은?”

 

엄청난 보안 기술처럼 보이려고 만든 장치는 아니다.

 

실제 권한은 서버에서 다시 확인하고,

이 질문은 실수로 다른 계정이나 열린 브라우저에서 들어오는 일을 한 번 더 막는 문에 가깝다.

 

바이브코딩으로 기능을 빠르게 늘릴수록

이런 작은 경계가 더 중요해진다고 느꼈다.

 


 

바이브코딩이라서 GUI가 더 필요했다.

AI는 코드를 빠르게 만들어준다.

 

하지만 내가 매번 테이블 이름과 명령어를 기억하고,

어떤 작업에 어떤 값이 필요한지 다시 설명해야 한다면

운영할 때마다 개발 모드로 돌아가야 한다.

 

어드민 화면은 그 과정을 버튼과 폼으로 고정해준다.

 

내가 의도한 순서대로 확인하고,

정해진 입력만 받고,

위험한 작업은 한 번 더 묻는다.

 

터미널을 없애기 위한 게 아니라

반복되는 운영만큼은 GUI로 제품화한 셈이다.

 


 

아직 완성된 어드민은 아니다.

기능을 만들었다고 바로 운영할 수 있었던 것도 아니다.

 

서버 함수가 빠져서 버튼이 실패하기도 했고,

권한 설정과 실제 운영 데이터가 맞지 않아 다시 고친 적도 있다.

 

Project K 메뉴는 아직 껍데기에 가깝고,

스토어 환불 알림처럼 자동으로 연결하지 못한 영역도 남아 있다.

 

정식 출시 전이라 데이터가 부족한 카드도 많다.

 

그래도 지금부터 만들어두면

첫 유저가 들어온 뒤 무엇을 확인해야 할지 허둥대지 않을 수 있다.

 

House Duck Console은 있어 보이는 대시보드가 아니다.

 

게임의 상태를 한눈에 보고,

언제 어디서나 필요한 일만 조심스럽게 처리하기 위해 만든

나만의 운영용 데스크톱 프로그램에 가깝다.