길드 시스템 5편: 데이터 테이블(KeyValue) 최적화 팁과 길드 상점 설계

 안녕하세요! '호랭이 물어갈 기획놈들' 입니다.

지난 포스팅들을 통해 길드 로비 UI와 출석, 기부 등 길드 시스템의 뼈대를 잡았습니다. 

이제 유저들이 열심히 모은 '길드 코인(공헌도)'을 사용할 [길드 상점]을 기획할 차례입니다.

하지만 상점 설계와 판매 리스트 작성 전에 , 시스템 기획자라면 알아두면 좋은 KeyValue 관련 내용에 대해 이야기 하려고 합니다.


1. 데이터 테이블 최적화 KeyValue


이번에 이야기 드리는 길드 시스템처럼 대형 콘텐츠 제작 시 파생되는 데이터 테이블의 양이나 테이블 안에 컬럼의 개수가 상상을 초월할 정도로 많습니다.

특히 이번 길드 시스템의 경우 간단하게 잡아도 아래와 같이 구성됩니다.

  • 길드 정보: 길드 레벨, 필요 공헌도, 레벨별 최대 인원 증가 테이블

  • 길드 Auth: 길드장, 부길드장 등 직급별 권한 테이블

  • 길드 출석: 출석 시 획득하는 공헌도 및 길드 코인 보상 테이블

  • 길드 선물: 공헌도를 소모해 상자를 오픈하고 길드원과 나누는 보상 테이블

  • 길드 기부: 무료/유료 기부 타입별 재화 획득 테이블

  • 길드 연구: 연구 트리 및 레벨별 버프 수치 테이블

  • 길드 레이드: 보스 스펙 및 토벌 보상 테이블

대충 읊어봐도 10개가 훌쩍 넘어가는 테이블을 작성해야 합니다. 

이를 전부 개별 테이블로 쪼개서 서버 프로그래머에게 넘기면, 개발 시 연결할 테이블 찾아서 서버 프로그래머가 열심히 작업하느라 개발 리소스도 낭비되고 향후 라이브 서비스 시 관리도 매우 힘들어집니다.

이때 주요한 팁을 하나 말씀드리려고 합니다.

고정된 데이터는 Key-Value로 빼라!

이게 무슨 이야기야 라고 의아해 하실 수 있는데 컬럼 숫자가 적고(1개 ~ 3개), 라이브 서비스 중 구조적인 변경이 거의 없을 것으로 예상되는 기능(예: 길드 출석 보상, 길드 기부 보상) 같은 내용은 굳이 개별 테이블 보다는 'Key-Value'라는 말 그래도 키-값의 구조를 가진 공통의 테이블 하나에 몰아넣고 관리하는 것을 좋아합니다.

길드 출석 키밸류

  • Key: Guild_Join_Reward | Value: 보상 아이템ID, 아이템 수량

길드 기부 키밸류

  • Key: Guild_Give_Item | Value: 기부 아이템ID, 아이템 수량
  • Key: Guild_Give_Reward | Value: 보상 아이템ID, 아이템 수량 

배열이나 단일 숫자로 해결할 수 있는 데이터들을 한 곳으로 모아주면, 저런 자잘한 테이블의 개수를 획기적으로 줄일 수 있어 서버 개발 리소스 낭비와 기획자의 유지 보수 스트레스를 상당 수 해결할 수 있습니다.

키밸류로 뺀 길드 기부 시스템 데이터
<그림 1. 키밸류 예시>



2. 길드 상점을 만드는 진짜 이유 (길드 생태계 구축)


데이터 뼈대를 잡았다면 본격적인 상점 기획입니다. 

길드 상점은 단순히 남는 재화를 소모하는 쓰레기통이 아닙니다. 

유저가 길드를 떠나지 않고 하나의 '사회'를 이루게 만드는 가장 강력한 동기 부여 장치입니다.

유저가 길드 출석, 기부, 레이드 등의 활동을 하면 '길드 코인'을 얻게 되고, 이 코인은 오직 '길드 전용 상점'에서만 사용할 수 있습니다.

길드 상점 만드는 이유 이미지


기획 포인트: 보상의 매력도가 생태계를 결정한다 

길드의 커뮤니티 성을 핵심으로 잡은 게임일수록, 길드 상점의 보상을 파격적으로 세팅합니다. 

과금으로만 얻을 수 있는 1티어 캐릭터의 조각이나 전용 무기 제련석 등을 길드 상점에 배치합니다.

 (물론 일정 길드 레벨 이상의 '구매 등급 제한'을 걸어둡니다.) 

이렇게 설계하면 유저들은 좋은 아이템을 얻기 위해 미접속자를 스스로 쳐내고, 길드원들의 출석을 독려하며 자발적으로 길드를 끈끈하게 유지하게 됩니다.


3. 기획자의 핵심 무기: 구매 제한(Limit) 로직 설계

길드 상점 기획서를 쓸 때 상품 리스트보다 훨씬 더 중요한 것이 바로 '구매 제한(Limit) 로직'입니다. 보통 아래와 같이 3단계의 주기로 세팅합니다.

  • 일간 제한 상품: 매일 1회~N회 구매 가능 (행동력, 하급 강화석 등 잦은 수급이 필요한 소모품)

  • 주간 제한 상품: 매주 1회 구매 가능 (일간 보상보다 단가가 높은 중급/상급 아이템)

  • 월간 제한 상품: 매월 1회 구매 가능 (캐시 상점에서나 파는 최고급 프리미엄 아이템)

왜 굳이 제한을 걸어둘까요? 

유저가 길드 활동을 열심히 해서 코인을 많이 모았다면, 한 번에 다 사게 놔두는 것이 유저 친화적인 방향 아닐까요? 여기에는 시스템 기획자의 두 가지 서늘한 의도가 숨어있습니다.

① 리텐션(접속 유지) 전략 

유저가 매일, 매주 길드 활동을 꾸준히 한다는 전제하에 월간 약 3~5만 원 상당의 유료 아이템 가치를 무료로 얻을 수 있도록 밸런스를 맞춥니다. 

무과금/소과금 유저가 내일도 게임에 접속해야만 하는 가장 확실한 이유(숙제)를 만들어 주는 것입니다.

② 핵심 BM(과금 모델) 보호 

유저가 길드 코인을 미친 듯이 쌓아뒀다고 해서 프리미엄 아이템을 무한정 구매하게 놔두면 게임의 경제와 밸런스가 한순간에 붕괴됩니다. 

즉, 일반 유료 상점의 가치를 극대화하기 위해 제한을 거는 것입니다. 

"길드 상점에서 노력으로 얻을 수 있는 무료 수량은 여기까지야. 성장이 더 고프면 캐시 상점으로 가!"라고 자연스럽게 동선을 유도하는 것이 Limit 로직의 진짜 목적입니다.


마무리

길드 상점은 유저에게 무과금 플레이의 희망을 주는 동시에, 게임 콘텐츠의 소모 속도와 과금 모델(BM)을 방어하는 정교한 밸런스 장치입니다.

오늘 짚어드린 Key-Value 테이블 최적화구매 제한(Limit) 로직의 기획적 의도를 잘 기억하신다면, 사수 없이 맨땅에 헤딩하는 주니어 기획자분들도 훨씬 더 탄탄하고 서버 프로그래머에게 환영받는 시스템 기획서를 작성하실 수 있을 것입니다.

다음 6편에서는 마지막으로 [길드 연구 및 레이드 시스템] 기획 실무에 대해 다뤄보겠습니다.

이상, '호랭이 물어갈 기획놈들'이었습니다.