안녕하세요. 두 명이 참여하는 4구·3구 경기의 재화와 전적 정산을 구현하고 있어 공식 지원 방법을 문의드립니다.
- 프로젝트명: magicCushion
- 환경: Unity 6000.5.7f1, .NET 8
- 펑션 개발 도구: 1.0.2에 포함된 Backend.dll
- 검사일: 2026-10-09
- 스테이터스 코드: 펑션 호출 HTTP 200, 내부 트랜잭션 실패 404
- 에러 코드: NotFoundException
- 에러 메시지: gameinfo not found
경기 시작 시 양쪽 입장료를 차감하고, 종료 시 승자에게 합계를 지급하거나 무승부이면 반환하려고 합니다. 같은 사용자의 다른 재화 변경과 경쟁할 수 있으므로 양쪽 지갑 버전과 경기 상태를 하나의 원자적 트랜잭션으로 검사·갱신해야 합니다. 서버만 수정하고 클라이언트가 직접 변경할 수 없는 저장소가 필요합니다.
호출자는 Backend.Initialize(ref stream) 이후 Backend.BMember.GetUserInfo()로 인증을 확인했습니다. 운영 재화가 아닌 공개 게임정보 진단 테이블에서 다음 결과를 직접 확인했습니다.
- GetV2로 A/B의 공개 행 조회: 성공.
- SetUpdateV2(table, inDate, owner_inDate, param) 두 개를 TransactionWriteV2로 묶어 A/B 갱신: 성공, 내부 204.
- SetUpdate(table, where, param)에서 owner_inDate·RunId·Slot·Version 조건으로 호출자 A의 두 행 갱신: 성공, 내부 204.
- 같은 조건 방식으로 B 행 갱신: 내부 404 NotFoundException, gameinfo not found.
- A/B/경기 상태 대용 행을 같은 조건 방식으로 묶어 갱신: 전체 실패, 모든 값 유지.
확인을 부탁드리는 사항은 다음과 같습니다.
- 펑션 서버 권한으로 B 소유 행에 버전 조건 또는 잔액 조건을 검사하며 갱신하는 공식 API가 있나요? 메서드 시그니처와 최소 예제를 부탁드립니다.
- SetUpdateV2 또는 다른 트랜잭션 API에 갱신 조건을 전달할 수 있나요? 조건 불일치 시 나머지 사용자·경기 상태·영수증 쓰기도 모두 롤백되어야 합니다.
- 기존 Where 기반 트랜잭션의 조건은 실제 커밋 시점에도 검사되나요, 아니면 먼저 행을 찾는 조회 조건인가요? 동일 버전에 대한 네 동시 요청 중 하나만 성공한 관찰 결과는 있으나 공식 보장 범위를 확인하고 싶습니다.
- 현재 데이터베이스 기능을 .NET 8 펑션에서 이용할 수 있나요? 가능하다면 공식 서버 SDK/API, 서버 인증, ClientAccess=false 테이블 접근 방법을 부탁드립니다. 아래 2026-02-24 담당자 답변에서는 펑션 미지원으로 안내되어 변경 여부를 확인하려고 합니다.
- 다른 사용자의 비공개 경기 기록을 서버에서 저장하는 공식 방법이 있나요?
- 코인·4구/3구 전적·경기 상태·영구 중복 방지 영수증을 함께 처리할 때 권장하는 뒤끝만의 구성은 무엇인가요? 별도의 외부 서버는 사용하고 있지 않습니다.
인증키, 토큰, 실제 사용자 식별자는 제외했습니다. 안내 부탁드립니다. 감사합니다.
참고 문서: