서버 연산관련 문의 드립니다.

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

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요.
서버로 연산을 하다가 궁금한게 있어 문의 드립니다.

AddCalculation()을 사용할 때 UpdateWithCalculation()을 사용하지 않고 TransactionWriteV2() 로 서버에 적용이 가능한가요?

여건상 여러 테이블에 나눠져 있는 값을 AddCalculation() 할 일이 있는데 각 테이블 마다 UpdateWithCalculattion()을 사용하면 서버에 여러번 호출을 하는거라 한번에 Transaction으로 처리를 하고 싶습니다.

또한 여러 컬럼안의 특정 값을 한번에 연산 가능한지도 알고 싶습니다.
에를 들어
컬럼 a, b, c, d, e 가 있고
각 컬럼당 aa, bb, cc, dd 4개의 데이터가 있다고 하면,
a 컬럼 bb 데이터의 값을 addition 3 연산
b 컬럼 bb 데이터의 값을 addition 2 연산
c 컬럼 bb 데이터의 값을 addition 1 연산

이렇게 3가지 연산을 한번에 처리할 수 있는 방법이 있는지 알고 싶습니다.

마지막으로 연산작업과 업데이트 작업을 하나의 Param에 넣어서 업데이트가 가능한지도 궁금합니다.

그럼 안녕히 계세요.

안녕하세요 개발자님,
문의하신 내용 순차적으로 답변드립니다.

  1. 연산 트랜잭션은 현재 제공되고 있지 않습니다.
    AddCalculation()을 사용할 때 UpdateWithCalculation()을 사용해 주셔야 합니다.

  2. 말씀한 예시에서는 아래처럼 Dictionary의 형태로 구현되어 있어야하는데, Dictionary의 경우 연산이 불가능하며
    param.Add(“a”, 10)과 같이 1depth의 데이터만 가능합니다. a,b,c,d가 한 row에 있다면 아래와 같이 이용해 주시면 됩니다.

    테이블
     ㄴa
       ㄴaa
       ㄴbb
       ㄴcc
       ㄴdd
     ㄴb
       ㄴaa
       ㄴbb
       ㄴcc
       ㄴdd
    
    Param updateParam = new Param();
    updateParam.AddCalculation("atk", GameInfoOperator.addition, 10); // 기존 데이터 atk에서 10만큼 더 추가
    updateParam.AddCalculation("def", GameInfoOperator.subtraction, 20); // 기존 데이터 def에서 20만큼 감소
    updateParam.AddCalculation("exp", GameInfoOperator.division, 2); // 기존 데이터 exp 1/2 감소
    updateParam.AddCalculation("money", GameInfoOperator.multiplication, 1.25); // 기존 데이터 money 1.25배 증가
    // 자신의 inDate의 row를 사칙연산
    Backend.GameData.UpdateWithCalculationV2( "tableName", inDate, Backend.UserInDate, updateParam );
    
  3. 연산과 일반 업데이트는 함께 진행할 수 없습니다, 따로따로 진행해 주셔야 합니다.