트랜잭션 사용법 문의

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

  • 프로젝트명 : 다크니스

안녕하세요. 자동저장 주기가 1분인데요. 자동저장 한 번에 약 10번의 UpdateV2 함수를 실행하다 보니,
팅김 현상이 잦고, 몇분간 재접속이 불가능한 문제가 지속적으로 발생하고 있습니다.

이에 이전에 문의 드린 바 있는데요. 트랜잭션 사용을 추천해주셨습니다. 지금 계속 적용해보고 있는데,
이와 같은 오류가 발생하면서 적용이 되지 않습니다.

statusCode : 400
errorCdoe : ValidationException
message : ExpressionAttributeNames contains invalid key: Syntax error; key: “#[34] Dia”

아래는 스크립트입니다.

이제 곧 사전예약에 들어가야 하는데 맘이 조급하네요ㅠ.
또… 자동저장을 트랜잭션으로 바꿔보려 했는데, 보니까 절반 이상의 테이블이 컬럼 개수가 200개를 초과하더군요. 자동저장 방식을 이런식으로 하면 팅김 현상이 줄어들까요?

(1분 자동 저장 그대로 유지 - for문 순차적으로 UpdateV2 실행 0.5초씩 딜레이 주면서)

정리하자면 총 2가지 질문입니다.

  1. 트랜잭션 사용법… (에러와 이미지 참조)
  2. 자동 저장 방식 (for문으로 순차적 실행 딜레이 0.5초씩)

안녕하세요 개발자님,
남겨주신 에러 정보는 컬럼명으로 사용되는 param의 key값에는 특수문자를 사용할 수 없다는 내용입니다.
일반 게임정보 삽입 및 업데이트에서는 가능하지만 데이터의 depth가 깊어지거나 할 경우 JSON 파싱에 에러가 발생할 수 있어 컬럼명에는 특수문자 사용을 금지하고 있습니다.
해당 부분 참고해 컬럼명을 일반 알파벳으로 교체하여 이용해 주세요. :D

트랜잭션의 사용이 어려우실 경우에는 10번의 업데이트하는 로직으로 가되 1분은 너무 짧은 저장주기로 확인됩니다.
권장 업데이트 주기는 5~10분입니다.
업데이트 주기 시간을 늘려서 이용해 주시면 감사하겠습니다.

아 특수 문자 문제였군요… 네 모두 확인했습니다.특수문자 제거 후 적용해보고 아래 방법도 사용해보겠습니다. 감사합니다.