Backend/Spring4 [Spring] 따닥으로 인한 중복 요청 방지하기 - 2 https://hyeri-dev.tistory.com/55 에서 이어집니다. 💡 Kotlin + Spring boot로 작성된 글입니다. 1. 문제@PatchMapping("/{order-id}")fun cancelOrders( httpRequest: HttpServletRequest, @AuthenticationPrincipal user: User, @PathVariable("order-id") orderId: String): ResponseEntity> { // 중복요청인지 확인 duplicateRequestService.isDuplicateRequest( user = user, request = httpRequest ) // 실질적인 비즈니스 로직 val response = or.. 2025. 7. 22. [Spring] 따닥으로 인한 중복 요청 방지하기 - 1 💡 Kotlin + Spring boot 로 작성된 글입니다.1. 문제사내 서비스에서 일명 따닥으로 인하여 중복 요청이 들어오는 경우가 발생하였다. GET 요청은 멱등성을 보장하기 때문에 큰 문제가 발생하지는 않지만, POST, PATCH 와 같은 데이터의 변경이 있는 요청에는 여러가지 문제가 발생할 수 있다.사내에서 발생한 문제는 결제가 정상적으로 취소되었음에도 불구하고 중복 요청에 의하여 Exception이 발생하였고 요청 실패 창이 뜨는 문제였다. 사용자 입장에서는 정상적으로 처리되지 않았다는 인식을 하게 되어 관련된 문의가 다수 발생하였다.해당 문제는 화면단에서도 처리 해야 하는 문제이지만 서버 내부에서도 체크할 필요가 있다고 판단하여 작업을 진행하였다.2. 요구사항문제를 해결하기 위한 방안에.. 2025. 7. 20. Servlet 와 Spring MVC Servlet 초기 웹 서버와의 통신을 살펴보면 클라이언트의 요청에 의해 웹 서버는 저장되어 있는 정적인 페이지만 요청에 대한 응답으로 제공해주었다. 웹이 점점 발전해나감에 따라서 클라이언트마다 요청에 대한 응답을 달리 보내주어야 하는 경우가 발생했다. 예를 들어 로그인 요청을 받았을 때, 로그인의 성공, 실패 페이지를 달리 구분해야 했으며 로그인 한 사용자에 따라 다른 페이지 구성을 보여줘야 하는 경우도 발생하였다. 정적 페이지만으로는 웹의 한계가 있었기 때문에 동적 컨텐츠를 생성하여 클라이언트에게 보내야 했다. 그렇게 발생된 것이 WAS(Web Application Server)이다. WAS는 클라이언트가 입력한 정보를 처리하는 주체로, DB와 연동하여 필요한 데이터를 받아와 Servlet을 이용하여.. 2023. 9. 26. 리플렉션(Reflection)과 Spring JVM을 공부하다 보니 리플렉션이라는 개념이 등장했다. 리플렉션은 곧 Spring에 대한 이야기라고 하셨다. Java의 겉핧기 식 공부만 한 비전공자인 나에겐 생소한 개념이었기 때문에 리플렉션의 개념부터 공부하기 시작했다. 그렇다면 Spring과의 연관성은 어떻게 이루어지는 것일까? 리플렉션(Reflection)이란? https://hyeri-dev.tistory.com/13 자바 리플렉션(Reflection) 리플렉션(Reflection)이란? 리플렉션의 어원 리플렉션의 어원은 반사, 비치다라는 뜻을 가진다. 즉, 리플랙션은 실질적인 주체(클래스)를 투영한 혹은 반사된 이미지, 클래스 로더에 의해 JVM 메모리 hyeri-dev.tistory.com 리플렉션은 클래스로더에 의해 JVM 메모리 영역에 저.. 2023. 9. 6. 이전 1 다음