트랜잭션 indate값?

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

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

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

안녕하세요! 뒤끝으로 방치형을 개발하고 있는데 이해가 되지 않는 부분이 있어 글을 남깁니다! 트랜잭션을 통해서 유저의 데이터를 불러오는 것을 만들고 있는데요.

public PlayerDataTransactionRead AddGetMyLatestData(string tableName);
public PlayerDataTransactionRead AddGetMyData(string tableName, string inDate);

이거 두개의 차이가 무엇인지 알 수 있을까요?

처음 유저가 로그인 하는 시점에서 inDate값을 받아오려면 읽기를 해야하는데 애초에 inDate를 사용하는 두번째 함수는 사용이 불가능한거 아닌가 해서요.

마찬가지로 데이터를 쓰기 할때에도

public PlayerDataTransactionWrite AddUpdateMyLatestData(string tableName, Param param);
public PlayerDataTransactionWrite AddUpdateMyData(string tableName, string inDate, Param param);

이렇게 두개가 있는데…

굳이 2번째를 사용해야하는 때가 언제인지 모르겠습니다.

안녕하세요, 개발자님.
게임 데이터는 유저 한 명 당 한 테이블에 여러 개의 데이터를 등록할 수 있기 때문입니다.
예를 들어, USER_DATA에 4월 11일에 삽입한 데이터와 4월 13일에 삽입한 데이터 두 개가 존재할 수도 있으며,
이때에 GetMyLatestData로 호출할 경우에는 4월 13일 데이터밖에 수정이 불가능하기에,
4월 11일 데이터도 선택할 수 있도록 inDate 검색 기능도 준 것 입니다.

제가 알기로는 INDATE는 각 테이블의 식별번호(?)로 알고 있는데, 제가 알고 있는것이 잘못된 것이고… 한테이블에 여러개의 INDATE를 넣을 수 있다는 말씀이신가요?

그렇게 따지면 USER_DATA에 게임에 이용한 변수가 300개라고 쳤을때,
4월 11일에 300개 / 4월 12일에 300개 / 4월 13일에 300개 도합 900개의 변수를 저장할 수 있다는 말인가요?

뒤끝에서는 유저가 하나의 테이블에 여러 개의 row를 소유할 수 있습니다.
이 때 각각의 row를 식별하기 위해 각 row는 고유한 inDate를 key 값으로 가집니다.
row의 inDate를 이용하여 해당 row를 조회, 수정, 삭제, 랭킹 갱신 할 수 있습니다.

아 그러면 한 테이블에 owner_inDate가 같은 여러개의 row(InDate는 다름)가 만들어져 있을 경우를 말씀하시는거로 이해가 되는데…
혹시 이 부분이 롤백? 같은 특수한 경우 때문에 이렇게 설계를 한다는 말씀으로 알아도 될까요?

그렇다면, 한 테이블에 owner_inDate가 같은 여러개의 row를 설계하지 않는다면,

  1. public PlayerDataTransactionWrite AddUpdateMyLatestData(string tableName, Param param);

1번만 사용해도 무방하다고 알고 있으면 될까요?

의도적으로 여러 row를 삽입하여 사용하는 경우도 있고
게임의 구조상 데이터 조회 후 존재하지 않는 경우 삽입을 하도록 하였을 때 조회에 실패한 상황에서 의도치 않게 삽입이 되는 등 상황은 다양한 경우에 발생할 수 있습니다.

말씀하신것처럼 사용하셔도 무방합니다.
단 예시의 상황과 같이 개발자님께서 구성하신 상황과 관련하여 예외 상황들이 발생할 경우도 항상 고려하여 코드를 구성하여 주시면 감사하겠습니다.

답변 감사합니다 :)