라벨이 테이블설계인 게시물 표시

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

이미지
 안녕하세요! '호랭이 물어갈 기획놈들' 입니다. 지난 포스팅들을 통해 길드 로비 UI와 출석, 기부 등 길드 시스템의 뼈대를 잡았습니다.  이제 유저들이 열심히 모은 '길드 코인(공헌도)'을 사용할 [길드 상점]을 기획할 차례입니다. 하지만 상점 설계와 판매 리스트 작성 전에 , 시스템 기획자라면 알아두면 좋은 KeyValue 관련 내용에 대해 이야기 하려고 합니다. 1. 데이터 테이블 최적화 KeyValue 이번에 이야기 드리는 길드 시스템처럼 대형 콘텐츠 제작 시 파생되는 데이터 테이블의 양이나 테이블 안에 컬럼의 개수가 상상을 초월할 정도로 많습니다. 특히 이번 길드 시스템의 경우 간단하게 잡아도 아래와 같이 구성됩니다. 길드 정보: 길드 레벨, 필요 공헌도, 레벨별 최대 인원 증가 테이블 길드 Auth: 길드장, 부길드장 등 직급별 권한 테이블 길드 출석: 출석 시 획득하는 공헌도 및 길드 코인 보상 테이블 길드 선물: 공헌도를 소모해 상자를 오픈하고 길드원과 나누는 보상 테이블 길드 기부: 무료/유료 기부 타입별 재화 획득 테이블 길드 연구: 연구 트리 및 레벨별 버프 수치 테이블 길드 레이드: 보스 스펙 및 토벌 보상 테이블 대충 읊어봐도 10개가 훌쩍 넘어가는 테이블을 작성해야 합니다.  이를 전부 개별 테이블로 쪼개서 서버 프로그래머에게 넘기면, 개발 시 연결할 테이블 찾아서 서버 프로그래머가 열심히 작업하느라 개발 리소스도 낭비되고 향후 라이브 서비스 시 관리도 매우 힘들어집니다. 이때 주요한 팁을 하나 말씀드리려고 합니다. 고정된 데이터는 Key-Value로 빼라! 이게 무슨 이야기야 라고 의아해 하실 수 있는데 컬럼 숫자가 적고(1개 ~ 3개), 라이브 서비스 중 구조적인 변경이 거의 없을 것으로 예상되는 기능(예: 길드 출석 보상, 길드 기부 보상) 같은 내용은 굳이 개별 테이블 보다는 'Key-Value'라는 말 그래도 키-값의 구조를 가진 공통의 테이블 하나에 몰아넣고 관리하는 ...

기획서 발주 후 실무 작업 3종 (테이블 구조, 텍스트 작업, 잠깐의 휴식)

이미지
  안녕하세요. '호랭이 물어갈 기획놈들' 입니다. 기획서 발주와 초반 일정 회의가 끝났다고 해서 기획자의 업무가 끝난 것은 결코 아닙니다. 오히려 타 부서가 요리할 수 있도록 식재료를 다듬는 '테이블 지옥'이 시작됩니다.  발주 직후 기획자가 정신을 똑바로 차리고 챙겨야 할 실무 3가지를 16년 차의 시선으로 짚어드립니다. 더미 데이터 입력 기획자들이 기획서 발주를 마치면 가장 많이 하는 치명적인 착각이 있습니다. 이제 내 손을 떠났으니 프로그래머가 결과물을 가져올 때까지 멍 때리고 기다리면 된다고 생각하는 것입니다. 하지만 실무는 그렇게 호락호락하지 않습니다.  보통 데이터 테이블의 뼈대(구조)는 사수나 프로그래머가 엔진 로직에 맞춰 미리 세팅해 줍니다. <그림 1. 데이터 구조 설계 예시> 신입이 해야 할 첫 번째 임무는 그 저 위의 껍데기 테이블 구조에 자신이 기획한 내용의 수치들을 일괄 데이터 화 시켜 테이블에 숫자 및 문자로 꽉꽉 채워 넣는 것입니다. '엑셀' 또는 '회사 전용 데이터 툴'을 열고 아이템 ID, 기본 스탯, 확률 수치 등을 개발팀이 테스트 진행하며 개발할 수 있도록 테스트 케이스에 맞춰서 실수 없이 입력해야 합니다. 이 기초적인 데이터 입력 과정에서 오타를 내거나 컬럼을 밀려 쓰면, 프로그래머가 테스트를 돌릴 때 클라이언트가 뻗어버리거나 메신저 또는 조용히 자리로 찾아오는 치명적인 상황이 발생합니다. 기획서의 화려한 아이디어보다 중요한 것은, 타 부서가 즉시 요리할 수 있도록 식재료(데이터)를 완벽하게 손질해서 테이블에 올려두는 꼼꼼함입니다. 발주가 끝났다면 마우스에서 손을 놓지 말고 즉시 데이터부터 밀어 넣으십시오. 스트링 테이블 작업 더미 데이터 입력으로 시스템이 굴러갈 뼈대에 살을 붙였다면, 그다음으로 챙겨야 할 것은 유저의 눈에 직접 보이는 '텍스트'입니다. 게임 내에 들어가는 모든 시스템 메시지, 아이템 이름, NPC 대사, UI 버튼의 이름들...