월드보스 회차별 정산·보상 수령 구현 문의

안녕하세요. 던전 클래식에서 아래 기능을 뒤끝만으로 구현할 수 있는지 문의드립니다.

여러 유저가 참여하는 월드보스에서, 보스 처치 시 유저별 누적 피해 순위를 확정하고 순위별 보상을 직접 수령하도록 구현하려 합니다.

  1. 펑션에서 클라이언트 접근을 차단한 Database 테이블을 서버 권한으로 조회·수정할 수 있나요?
  2. 동시 피해 요청과 처치 정산을 안전하게 처리하는 권장 방식이 있나요? 펑션 시간 초과·실패 시 서버 재시도도 가능한지 궁금합니다.
  3. Database의 수령 완료 기록과 베이스 게임정보의 아이템 지급을 함께 처리할 수 있나요? 불가능하다면 중복·누락 방지 방법을 안내 부탁드립니다.

가능한 서비스 조합과 관련 API·예제를 알려주시면 감사하겠습니다.

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

1. 펑션에서 데이터베이스 테이블 서버 권한 조회·수정
현재 뒤끝 펑션에서는 데이터베이스 기능을 이용할 수 없어, 펑션을 통해 클라이언트 접근이 차단된 테이블을 조회·수정하는 방식으로는 구현이 어렵습니다.
펑션에서 데이터베이스를 사용할 수 있도록 업데이트를 준비하고 있으며, 11월 중 적용을 목표로 하고 있습니다.

2. 동시 피해 요청·처치 정산 처리, 시간 초과 시 재시도
※ 아래 내용은 펑션에서 데이터베이스 이용 업데이트가 적용된 이후 기준입니다.

여러 유저의 피해량 누적은 데이터베이스의 증감 연산(Inc / Dec)을 활용하실 수 있습니다.
기존 값을 조회해 덮어쓰지 않고 서버에서 바로 값을 증감하므로, 동시 요청으로 값이 덮어써지는 문제를 줄일 수 있습니다.

다만 보스 처치 이후 들어온 피해 요청을 막거나 순위를 확정하는 처리는 자동으로 이루어지지 않으므로, 보스 상태를 기준으로 별도 구성이 필요합니다.

뒤끝 펑션은 기본적으로 1회 실행 시간이 10초로 제한되며, 더 긴 시간이 필요한 경우 문의해 주시면 조정 가능 여부를 확인해 드리고 있습니다.
또한 펑션이 실패하거나 시간 초과가 발생해도 서버에서 자동으로 재시도하지는 않습니다. 호출 결과의 응답값을 확인하여 실패한 경우 재요청하도록 구성해 주세요.

3. 데이터베이스 수령 기록과 게임정보 아이템 지급 동시 처리
데이터베이스와 베이스 게임정보는 하나의 트랜잭션으로 묶어 처리할 수 없습니다.

각각 별도로 요청해야 하며, 한쪽이 성공하더라도 다른 쪽까지 완료된다는 보장은 없습니다.
예를 들어 수령 기록 저장 후 아이템 지급에 실패하면 보상이 누락될 수 있고, 반대로 아이템 지급 후 수령 기록 저장에 실패하면 재요청 시 중복 지급될 수 있습니다.

각 요청의 응답값을 확인해 성공한 경우에만 다음 단계를 진행하고, 수령 요청 시 기존 수령 여부를 먼저 확인하도록 구성해 주시는 것을 권장드립니다.

수령 기록과 아이템 정보를 같은 저장소에서 관리하실 수 있다면, 해당 저장소의 트랜잭션을 활용하는 방법도 검토해 보실 수 있습니다.