정답 제출 API 멱등성 처리하기
·
프로젝트/COTATO.KR
앞선 글에서 HTTP 멱등성과 API의 멱등성을 구현하는 과정에 대한 내용을 정리했다.이번 글에서는 현재 Cotato 정규 세션 문제 풀이에서 사용하는 로직인 ‘정답 제출’ API에 멱등성 처리를 하는 과정을 글로 정리하겠다.정답 제출 API의 멱등성 처리 필요성정답 제출 API의 서비스 로직을 간단하게 정리하면 아래와 같다.정답이 아니면 제출 기록을 생성 후 저장한다.정답인 경우이미 득점처리가 되었는지 확인한다.득점자보다 해당 제출 기록이 더 빠르면 득점자로 대체한다.득점자보다 느리면 단순히 기록을 저장한다.이때 핵심은 정답 처리가 된 요청은 하나만 생성되어야한다는 점이다.하지만, 우리는 선착순으로 득점자를 정한다. 그렇기 때문에 사람들은 풀이가 허용되는 시점 이전에 무수한 요청을 보내는데 요청이 처리..