본문으로 건너뛰기

게임 정보 관리

뒤끝을 활용하면 손쉽게 유저의 데이터를 관리할 수 있습니다.
뒤끝에서는 스키마를 정의한 테이블과 정의하지 않은 테이블, 두 가지 방식으로 테이블을 생성할 수 있으며
뒤끝 SDK를 활용해 뒤끝 서버와 통신하며 실제 게임 정보를 저장, 수정, 조회, 삭제할 수 있습니다.

게임 정보 바로가기

관련 콘솔 가이드 : 뒤끝베이스 - 게임 정보 관리 - 테이블
관련 SDK 개발자 문서 : 게임 정보 관리 - 테이블 리스트 조회하기

스키마 유무에 따른 차이점​

구분스키마를 정의한 테이블스키마를 정의하지 않은 테이블
테이블 컬럼 확장뒤끝 콘솔에서만 가능클라이언트 & 뒤끝 콘솔에서 가능
압축데이터 컬럼지원미지원
클래스 삽입지원하지 않음클라이언트에서만 가능
기본값 설정지원지원하지 않음
쿼리문으로 검색지원지원
트랜잭션지원지원
연산자(Update와 동시에 연산)지원지원

스키마 정의 테이블​

  • 사전에 정의한 컬럼만 삽입/수정이 가능합니다.
    콘솔에서 테이블을 생성할 때 테이블을 이루는 컬럼을 모두 선언한 후 사용이 가능한 테이블입니다.
    사전에 콘솔에서 정의하지 않은 컬럼들의 삽입/수정을 시도할 경우 모두 실패하게 됩니다.
  • 콘솔에서 테이블을 이루는 컬럼들의 기본값 설정이 가능합니다.
    클라이언트에서는 테이블을 삽입하기만 해도 모든 컬럼이 기본값으로 초기화됩니다.
    기본값으로 초기화하지 않고 각각의 값을 명시하여 삽입하는 것도 가능합니다.
  • 압축데이터 컬럼을 사용할 수 있습니다.

스키마 미정의 테이블​

  • 확장이 자유로운 noSql 형태의 테이블입니다.
    콘솔에서 테이블을 생성한 후에는 클라이언트에서 어떤 형태의 컬럼을 삽입/수정하든 모두 성공하게 됩니다.
  • 테이블을 이루는 컬럼들과 기본값을 클라이언트에서 설정해야 합니다.
    noSql 특성상 삽입/수정을 할 때 컬럼이 생성되기 때문에 클라이언트에서 이를 수행해야 합니다.
  • 압축데이터 컬럼은 사용이 불가합니다.

Public 테이블과, Private 테이블의 차이​

테이블ReadWrite
public 테이블모든 게이머의 정보를 반환모든 게이머의 테이블을 수정 가능
(SDK 5.4.0 미만은 자신의 테이블만 가능)
private 테이블자신의 테이블 정보만 반환자신의 테이블만 수정 가능

트랜잭션 기능​

트랜잭션이란 여러 개의 읽기 혹은 쓰기 작업을 한 번에 모두 수행하거나 아무것도 수행하지 않는 작업으로 그룹화하는 동기식 작업입니다.
작업은 원자 단위로 완료되므로 작업이 모두 성공하거나 모두 실패하게 됩니다.

즉 트랜잭션으로 묶인 작업들이 모두 성공할 시 성공으로 리턴하고, 작업들 중 일부가 실패할 시 모든 작업의 처리를 초기화하고 실패로 리턴합니다.

뒤끝에서는 읽기 혹은 쓰기를 최대 10개로 묶어 트랜잭션 처리를 할 수 있습니다.

게임 정보의 저장 최대량​

하나의 row(column들의 집합)에서 400KB까지 저장이 가능합니다.
예를 들어 column의 이름이 shirt-color이고 이 값이 R 이면 12 Byte를 저장한 것입니다.

  • 하나의 row(column들의 집합)이 400KB를 넘는 경우
    statusCode : 413
    errorCode : ServerErrorException
    message : request entity too large

최대로 한 번에 저장 가능한 컬럼의 갯수는 약 290개 입니다.

  • 삽입하려는 컬럼의 갯수가 총 290개를 넘을 경우
    statusCode : 400
    errorCode : ValidationException
    message : Invalid UpdateExpression: Expression size has exceeded the maximum allowed size;