안녕하세요 개발자님
문의하신 내용 순차적으로 답변드립니다.
1. 펑션에서 데이터베이스 테이블 서버 권한 조회·수정
현재 뒤끝 펑션에서는 데이터베이스 기능을 이용할 수 없어, 펑션을 통해 클라이언트 접근이 차단된 테이블을 조회·수정하는 방식으로는 구현이 어렵습니다.
펑션에서 데이터베이스를 사용할 수 있도록 업데이트를 준비하고 있으며, 11월 중 적용을 목표로 하고 있습니다.
2. 동시 피해 요청·처치 정산 처리, 시간 초과 시 재시도
※ 아래 내용은 펑션에서 데이터베이스 이용 업데이트가 적용된 이후 기준입니다.
여러 유저의 피해량 누적은 데이터베이스의 증감 연산(Inc / Dec)을 활용하실 수 있습니다.
기존 값을 조회해 덮어쓰지 않고 서버에서 바로 값을 증감하므로, 동시 요청으로 값이 덮어써지는 문제를 줄일 수 있습니다.
다만 보스 처치 이후 들어온 피해 요청을 막거나 순위를 확정하는 처리는 자동으로 이루어지지 않으므로, 보스 상태를 기준으로 별도 구성이 필요합니다.
뒤끝 펑션은 기본적으로 1회 실행 시간이 10초로 제한되며, 더 긴 시간이 필요한 경우 문의해 주시면 조정 가능 여부를 확인해 드리고 있습니다.
또한 펑션이 실패하거나 시간 초과가 발생해도 서버에서 자동으로 재시도하지는 않습니다. 호출 결과의 응답값을 확인하여 실패한 경우 재요청하도록 구성해 주세요.
3. 데이터베이스 수령 기록과 게임정보 아이템 지급 동시 처리
데이터베이스와 베이스 게임정보는 하나의 트랜잭션으로 묶어 처리할 수 없습니다.
각각 별도로 요청해야 하며, 한쪽이 성공하더라도 다른 쪽까지 완료된다는 보장은 없습니다.
예를 들어 수령 기록 저장 후 아이템 지급에 실패하면 보상이 누락될 수 있고, 반대로 아이템 지급 후 수령 기록 저장에 실패하면 재요청 시 중복 지급될 수 있습니다.
각 요청의 응답값을 확인해 성공한 경우에만 다음 단계를 진행하고, 수령 요청 시 기존 수령 여부를 먼저 확인하도록 구성해 주시는 것을 권장드립니다.
수령 기록과 아이템 정보를 같은 저장소에서 관리하실 수 있다면, 해당 저장소의 트랜잭션을 활용하는 방법도 검토해 보실 수 있습니다.