안녕하세요. 데이터 쓰기관련 문의 입니다.

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

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

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

  • 뒤끝 SDK 버전 : 5.13.0
  • 프로젝트명 : 난세표류기 - 한국사 방치형RPG
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

혹시 트랜잭션쓰기 및 일부 데이터 저장시에
변하지 않은 데이터들 예를들어
a 라는 int데이터가 0이었고

저장시에도 a라는 int데이터가 0이면
이부분은 무시하고 저장을 안하는건가요?
아니면 덮어 씌어져서 저장되는건가요.

당연히 후자라고 생각하고 있는데,
제가 트랜잭션으로 저장하는 칼럼의 수가 308개인데
290개의 제한이 걸리지 않아 혹시나해서 여쭤봅니다.

안녕하세요 개발자님,
기존 데이터의 여부와 관계없이 요청되어온 데이터가 존재한다면
update 요청에 따라 새로운 요청값으로 저장됩니다.
일부만 저장되는 경우는 없으며, 허용된 조건을 벗어나는 요청이 시도되는 경우 그에 따른 에러가 발생합니다.

허용 용량 및 컬럼수의 경우 두가지가 복합적으로 적용되어 조금 더 복잡한 조건이 있으며,
이를 원활히 이용하실 수 있도록 현재와 같은 수치로 안내가 이루어지고 있습니다.
관련하여서는 조금 더 정확한 정보로 확인하여 안내드리겠습니다.

BaseData 테이블이 195개의 컬럼을 가지고 있고
Growth3Data 테이블이 110개의 컬럼을 가지고 있고
TresurData 테이블이 3개의 칼럼을 가지고 있고

이걸 묶어서 트랜잭션으로 요청한 사항입니다.
하나의 로우에서는 컬럼이 290개가 넘지 않지만
이 3개의 로우에서는 컬럼이 290개가 넘는 상황입니다. (총 308개)

이때에 트랜잭션 1회 호출이 3개의 로우를 통틀어서 제한되는건가요?
아니면 각각의 로우에 290개가 넘어야지 제한된다는 건지 알 수 있을까요?

확인된 트랜잭션 제한 관련 정보 안내드립니다.

  1. 트랜잭션을 통해 처리되는 총 데이터는 400KB 를 초과할 수 없음
  2. UpdateExpression 의 제한으로 다음 안내되는 식의 총 합이 4kb를 초과할 수 없음
    (각 컬럼명 byte + 4) * 2) byte + 고정값 27byte
    • 예를들어 mission_001, mission_updatelog 컬럼을 업데이트한다고 하였을 때 다음과 같이 적용됩니다.
      ((11 + 4) * 2) + ((17 + 4) * 2) + 27 = 99byte

이에 컬럼 명에 따라 290개를 초과하는 컬럼도 처리는 가능하며,
오히려 적은 컬럼의 경우도 요청에 실패할 수 있는 점 참고 부탁드립니다.
개발자 문서 내에도 관련 내용이 보다 정확히 안내될 수 있도록 하겠습니다.

안녕하세요. 혹시 2번에 대해 자세히 알 수 있을까요?

  1. UpdateExpression 의 제한으로 다음 안내되는 식의 총 합이 4kb를 초과할 수 없음
    (각 컬럼명 byte + 4) * 2) byte + 고정값 27byte
  • 예를들어 mission_001, mission_updatelog 컬럼을 업데이트한다고 하였을 때 다음과 같이 적용됩니다.
    ((11 + 4) * 2) + ((17 + 4) * 2) + 27 = 99byte

아무리 개발자 문서들을 찾아도 해당 글을 찾아볼 수가 없는데…

컬럼명이 “abcd” 이면, 5byte로, 컬럼 200개만 있어도
저 공식대로라면
(5 + 4) * 2 byte * 200컬럼 + 고정 27byte
= 18 * 200컬럼 + 고정 27byte
= 3,627byte 나오는데

이러면 4kb를 넘기가 너무 쉬운데

저는 트랜잭션으로 300칼럼 이상을 수정보고 있는데 왜 문제가 안생기는지 궁금합니다.

더불어 원래 질문에 대한 답변을 제대로 못 받은거 같은데…

BaseData 테이블이 195개의 컬럼을 가지고 있고
Growth3Data 테이블이 110개의 컬럼을 가지고 있고
TresurData 테이블이 3개의 칼럼을 가지고 있고

이걸 묶어서 트랜잭션으로 요청한 사항입니다.
하나의 로우에서는 컬럼이 290개가 넘지 않지만
이 3개의 로우에서는 컬럼이 290개가 넘는 상황입니다. (총 308개)

질문)
이때에 트랜잭션 1회 호출이 3개의 로우를 통틀어서(총 308개) 제한되는건가요?
아니면 각각의 로우에 290개가 넘어야지 제한된다는 건지 알 수 있을까요?

이 부분도 다시 질문합니다 :)

트랜잭션 호출은 일반 호출 10개를 묶어 한번에 처리할 수 있는 기능입니다.
일반 호출 1회를 기준으로 적용되는 계산식이며,
기존 정확한 안내가 이루어지지 않고 있던 부분을 확인하여 안내해드리게 되었습니다.
관련한 내용은 개발자 문서에 수정 반영이 이루어질 예정입니다.

설명드리면 트랜잭션을 통해 요청되는 10개의 요청이 각각 계산식 범위를 초과하지 않으면 호출에 성공합니다.