rejin 아바타

서브컬처 게이머

세상의 모든 아름다운 것들을 위하여

image 128

[붕괴 3rd] 복귀 시스템 역기획서 작성 – Step 2

저번 글에는 붕괴 3rd 복귀 시스템의 역기획서 작성을 본격적으로 시작하며, 아래의 작업을 진행했다.

  • 캡처/녹화 자료 확보
  • 스펙 옮겨적기 : 이미지 -> 표로 정리
  • 참조용 데이터 정리

이번 글에서는 위에서 정리한 내용을 바탕으로 유추할 수 있는 내용을 조금 더 추가해보도록 하자.


Primary Key 부여

데이터베이스에서는 ‘기본 키(Primary Key)’라고 하는 개념이 존재한다.

주민등록번호를 생각해보자. 한국인이라면 누구나 주민등록번호를 가지고 있다.

주민등록번호가 중복인 사람이 있거나, 주민등록번호가 없는 사람이 있을까? 일반적으로는 없을 것이다.

Primary Key는 바로 이런 ‘주민등록번호’ 같은 값을 의미한다.

Primary Key의 특징

  • 표 안에 포함된 행마다 서로 다르게 구분되는, 고유한 값이다.
  • 중복값이 존재하지 않는다.
  • 값이 없을 수 없다.

그렇다면 이러한 값을 왜 추가해야하는 것일까? 그건 바로 ‘관계형 데이터베이스’로 테이블을 구성할 것이기 때문이다.

관계형 데이터베이스?

관계형 데이터베이스란, RDBMS(Relational Database Management System)의 약자로, 서로 다른 두 테이블이 기본 키 등을 이용하여 참조하는 구조를 갖는 데이터베이스를 의미한다. 앞으로 역기획서를 작성할 때 관계형 데이터베이스로 구축할 것이기 때문에, 혹시나 이런 분야에 관심이 있다면 이쪽을 공부해보는 것을 권한다. 이 글에서는 역기획서를 주제로 하고 있으므로 관계형 데이터베이스에 관한 내용은 생략한다. (어차피 다루는 내용이 심도 있지 않다.)

image 128
관계형 데이터베이스의 구조 도식화. Customer Table에서 Order Table의 Customer ID를 참조하고 있다.
@cloud.google.com/learn/what-is-a-relational-database?hl=ko

그렇다면, 이제 본격적으로 앞서 작업한 데이터의 앞에 KEY를 부여해보도록 하자. 나는 아래와 같은 규칙으로 ID를 부여하겠다.

  • 복귀 출석 -> Return_Attendance_01
  • 복귀 임무 -> Return_Mission_01

여기서 Return을 앞에 적고, 숫자를 가장 뒤에 적었다. Return(복귀)의 범주가 출석이나 임무보다 크기 때문에 앞에 적었다.

아래는 ‘복귀 출석’ 테이블에 KEY 열을 추가하고 Primary Key를 부여한 것이다.

image 129

이쯤에서 다시 ‘복귀 출석’ 인게임 이미지를 확인해보도록 하자.

로컬라이즈 Key 분리

image 130

위 페이지를 보면, 한국어로 적혀있는 부분 중에서 ‘이미지’로 되어 있는 부분도 있지만 ‘텍스트’로 되어 있는 부분도 있다.

image 131
image 132

위의 두 이미지는 별도의 UI 이미지로 관리되고 있을 것이다. 이런 UI는 로컬라이즈 Key로 관리하는 게 아니라 UI 시스템에서 별도의 경로에 모여 있는 이미지를 불러와 입혀주는 구조로 보인다.

image 133
image 134

반면에, 위의 두 이미지는 인게임에서 텍스트로 기입된 부분으로 보인다. 이런 텍스트는 보통 현지화(로컬라이즈)를 위해 별도의 테이블에서 관리하고 있을 가능성이 높다.

예를 들면,

image 135

이런 유의 테이블 구조는 각 권역별로 하나의 로컬라이즈 키에 여러 개의 언어가 대응한다. 따라서 중국 빌드는 CN을 불러와서 중국어가 나오고, 한국 빌드는 KR을 불러와서 한국어가 나오는 식이다. 이런 식의 테이블 구조가 되어 있다면, 기획자가 CN에서 확보한 안정성을 다른 KR, EN, JP 등에서도 보장할 수 있다는 장점이 있다. (단, 위 권역별 번역 텍스트를 잘 채워놨다는 전제 하에)

그렇다면 이제 각 세부 항목마다 가지고 있는 로컬라이즈 요소에 모두 KEY를 부여해보도록 하자.

그리고, 지금까지 각 테이블의 열 머리글(어트리뷰트)을 한국어로 적은 부분을 모두 영어로 수정하도록 하겠다. 또한 중복 없이 적도록 한다.

image 138

이번에 신규 추가하거나 수정한 곳은 모두 빨간 색으로 칠했다.

LocalizeKey 테이블을 추가했다. 이 부분은 추후 별도의 로컬라이즈 테이블에서 관리할 것이기 때문에 열 머리글을 녹색으로 칠했다. 그리고 LocalizeKey에 Key값을 부여했는데, 아래의 일반 데이터와 혼동이 없도록 값의 제일 앞에 ‘Localize_’ 머리글을 추가했다. 이 ID 또한 추후 ID관리가 더 유리한 방법으로 수정할 수도 있다.

그리고 기존의 복귀 출석 테이블의 열 머리글을 모두 영문으로 바꾸었다. 특히 Reward_1 처럼, 열 머리글 사이에 띄어쓰기 대신 언더바를 넣었는데, 이것은 강제 요소는 아니지만 데이터를 관리하는 팀 내부 규칙에 맞게 진행하면 된다. Reward_1의 보상은 Reward_get_1의 (보상) 수량과 대응한다.

이로써 각 세부 항목의 모든 테이블 데이터에 ID를 부여하는 것까지 완료하였다.