나는 프론트에서 제어할 수있는 부분은 최대한 제어하고 서버 요청을 줄이는 것이 좋은 방법이라고 생각했다.
예를 들면, 자신이 작성한 가이드 카드에 대해서는 신청하기와 채팅하기를 비활성화 시켜, 애초에 클릭이 되지 않도록 하여, 굳이 서버 요청까지 가지 않아도 클라이언트에서 이를 충분히 방지할 수 있을 것이라고 생각했다.
하지만, 간과하고 있었던 것이 있었다.
cookie, localStorage, state를 조작하여 사용자가 서버 요청을 보낼 수 있다는 것이다.
userId를 redux-persist에 저장하고 해당 가이드카드 모달의 작성자 userId와 비교하여 가이드 카드를 비활성화하려고 했지만, 위와 같은 조작이 발생한다면 해당 요청이 보내지게 되는 것이다.
결과적으로, 이를 클라이언트에서 1차적으로 방지를 하더라도, 서버에서 이를 반드시 핸들링할 필요가 있다.