새로운 서버를 오픈하고싶습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 프로젝트명 : 모험가 키우기

기존 서버에서 약 1년정도 운영을 하고있습니다. 1주년 맞이해서 IOS 출시와 함께 새로운 서버를 열어서 2개의 서버를 운영하고 싶은데 혹시 뒤끝에 해당 내용 관련 가이드라인이 있을까요?

안녕하세요 개발자님.

서버 분리 및 활용 방법에 대해서는 별도의 가이드라인 존재하지 않고 있습니다.

서버 분리 방법에는 크게 2가지로 나눠집니다.

첫번째는 완전히 다른 뒤끝 프로젝트 시작하는 것으로 두 서버 사이의 게임 정보 공유, 랭킹 정보 공유등이 필요하지 않을 경우 기존에 사용중이신 프로젝트의 테이블, 랭킹, 차트등을 재등록하여 프로젝트를 분리하여 운영하게 됩니다. 코드단에서 별도의 변경이 필요없이 클라이언트 앱 아이디만 바꾸기 때문에 에러의 부담이 적습니다. 다만 차트등과 같은 콘솔에서 데이터를 업로드할 경우 두 프로젝트 모두 적용해야하는 단점이 존재합니다.

두번째는 한 프로젝트 내에서 Android와 IOS가 사용하는 테이블, 랭킹을 분리하는 방법입니다. 위와 같이 공통으로 사용하는 차트는 한번의 업로드로 해결이 되지만, 별도의 분리값이 필요하며 iOS에서 사용할 테이블과 랭킹을 새로 만들고 로직상에서도 해당 분리값에 따라 테이블, 랭킹들을 따로 분리해야 하여 코드의 부담이 큽니다. 위와 같은 방식은 iOS와 Android 구분 보다는 미국 서버, 일본 서버, 한국 서버등 국가 별 서버를 분리할 때 용이합니다.

따라서 안드로이드와 iOS간 유저가 소통하지 않을 경우에는 새로운 IOS 전용 프로젝트를 만들어 서버를 분리하는 것을 추천드립니다.

답변 감사합니다. 한가지만 더 질문드려도될까요?

만약 플렛폼 구분이 아닌 새로운 서버를 한개 더 만든다고 했을 때 처음 플렛폼 로그인 후 서버 입장을 선택하는 기능을 만들기 위해서 두번째 방법으로 진행하는것이 맞을까요? 아니면 게임 안에서 첫번재 방법처럼 클라이언트 앱 아이디를 바꿔서 입장 할 수 있는 기능이 존재하나요?

  1. 두가지 모두 가능합니다.

첫번 째 방법은 서버 추가 시, 콘솔의 모든 부분을 수동으로 재설정해야하지만 코드를 수정하는 부분은 적습니다.(적은 서버에 유용)
두번 쨰 방법은 서버 추가 시, 차트와 같은 공통된 데이터는 제외하고 랭킹과 테이블만 구분하면 되지만 코드의 수정이 다소 필요합니다.(많은 서버에 유용)

  1. 클라이언트 앱 아이디의 경우, 아래와 같이 초기화 함수에 코드상으로 클라이언트 앱 아이디를 직접 입력할 수 있는 기능이 존재합니다.
using BackEnd;

void Start()
{
    // 두 번째 방법 (동기)
    // SDK 설정값
    BackendCustomSetting settings = new BackendCustomSetting();
    settings.clientAppID = "클라이언트 앱 아이디";
    settings.signatureKey = "시그니처 키";
    settings.functionAuthKey = "뒤끝펑션 키";
    settings.isAllPlatform = true;
    settings.sendLogReport = true;
    settings.timeOutSec = 100;
    settings.useAsyncPoll = true;

    var bro = Backend.Initialize(settings);
    if(bro.IsSuccess())
    {
        // 초기화 성공 시 로직
    }
    else
    {
        // 초기화 실패 시 로직
    } 
}

답변 감사합니다. :)