리더보드 갱신 절차 전반에 대한 문의

안녕하세요. 저희 프로젝트에 리더보드를 구현하면서 개발자 문서를 참조하고 있는데, 다음 구절에서 의문점이 생겼습니다:

  • 리더보드를 갱신하기 위해서는 먼저 리더보드를 갱신하려는 유저가 해당 테이블을 1회 Insert 하여 row를 생성해야 합니다.
  • UpdateMyDataAndRefreshLeaderboard 함수는 Backend.GameData.Update 함수에 리더보드 갱신 기능이 추가된 함수 입니다.

궁금한 점은 다음과 같습니다:

  1. "1회 Insert 하여 row를 미리 생성해둬야 한다"는 문장은 최초 1회의 점수 업로드인지 여부를 판단/저장해야 한다는 뜻으로 이해됩니다. 그런데, 최초 업로드라고 판단한 이후에 어떻게 조치해야 하는지 잘 모르겠습니다. 다음 중 어떤 의미인지요?
    • UpdateMyDataAndRefreshLeaderboard API 대신에 Backend.PlayerData.InsertData API를 사용해서 점수를 업로드해야 함
    • Backend.PlayerData.InsertData API로 빈 값을 업로드해서 rowInDate를 먼저 얻어낸 다음 UpdateMyDataAndRefreshLeaderboard API로 실제 값을 업로드해야 함
  2. "UpdateMyDataAndRefreshLeaderboard API에 리더보드 갱신 기능이 추가되었다"는 문장은 점수를 업로드할 때 Backend.PlayerData.InsertData API를 쓰지 말고 UpdateMyDataAndRefreshLeaderboard API를 쓰라는 뜻으로 이해됩니다. 그런데, 점수 업로드 후의 후속조치가 필요한지 잘 모르겠습니다. 다음 중 어떤 의미인지요?
    • 해당 API의 결과값으로 UserLeaderboardItem 콜렉션이 반환되므로 곧바로 UI를 갱신할 수 있음
    • 해당 API를 성공적으로 호출했으면 다시 Backend.Leaderboard.User.GetLeaderboard API를 호출해서 UI를 갱신해야 함
  3. 1, 2항과 관련된 샘플 코드가 있다면 좋겠습니다.
    • 샘플 프로젝트가 URank API가 아닌 Leaderboard API를 구현하고 있는지요?
    • 샘플 프로젝트가 SDK 업데이트에 맞춰 그 내용이 갱신되고 있거나 갱신될 예정인지요?

안녕하세요 개발자님,
리더보드 갱신의 경우 반드시 테이블 내 해당 유저의 데이터가 존재해야 하기 때문에 1회 insert가 필요함을 안내하고 있습니다.

  1. Backend.PlayerData.InsertData(혹은 Backend.GameData.Insert) 를 통해 랭킹으로 사용되는 테이블 내 유저의 row 데이터를 생성해 주면 됩니다. (점수와 관계없이 테이블 내 유저의 데이터가 존재해야 하기에 그렇습니다.)

  2. UpdateMyDataAndRefreshLeaderboard 함수는 Backend.GameData.Update 함수에 리더보드 갱신 기능이 추가된 함수 입니다.

    위 문구를 통해 안내된 내용은 단순히 update 함수를 통해 스코어로 사용되는 컬럼 정보를 업데이트 해주는 경우, 리더보드의 점수에는 반영이 이루어지지 않기 때문에 리더보드 갱신 + 테이블 내 스코어로 사용되는 컬럼의 데이터 갱신을 함께하는 함수로써 제공을 한다는 내용입니다.
    점수의 변화에 따라 랭킹을 갱신하려 한다면 Backend.PlayerData.UpdateMyData(혹은 Backend.GameData.UpdateV2) 대신 Backend.Leaderboard.User.UpdateMyDataAndRefreshLeaderboard 함수만 호출하면 됩니다.

    1번과 2번을 종합하여 간단히 설명드리자면 유저가 최초 회원가입을 하였다 하였을 때,
    가입 직후에 Backend.PlayerData.InsertData(혹은 Backend.GameData.Insert) 를 통해 랭킹 테이블에 데이터를 1회 삽입하도록 하고, 이후에는 Backend.Leaderboard.User.UpdateMyDataAndRefreshLeaderboard 함수를 통해서 점수를 갱신해 나가면 됩니다.

  3. 개발자 문서 내 제공되는 예제 코드를 그대로 사용해 주시면 됩니다.
    예를들어 리더보드 갱신(랭킹 갱신)의 경우 Backend.URank.User.UpdateUserScore 대신 Backend.Leaderboard.User.UpdateMyDataAndRefreshLeaderboard 를 사용하는 차이 뿐입니다.

    튜토리얼을 통해서도 리더보드 함수가 적용되어 제공중에 있습니다. (튜토리얼 내에서는 그룹 랭킹으로 표시)