Spring MVC 1편 PRG 패턴 (Post/Redirect/Get)

신재원·2023년 1월 30일
0

Spring MVC 1편

목록 보기
34/35

PRG란?

  • Post 방식으로 온 요청에 대하여 GET방식의 웹페이지로 리다이렉트 시키는 패턴을 말한다.
  • POST --> REDIRECT --> GET

PRG패턴을 사용하지 않을경우 문제점

  • 새로고침으로 인한 동일한 요청 (POST)이 연속적으로 보내지는 이슈가 발생한다는 것이다.
    만약 이 이슈가 중요하지 않은 로직이 있는 부분이라면 상관없겠지만 결제 같은 중요한 로직에서는 중복 결제가 일어나는 문제가 발생한다.

PRG 패턴 적용 코드

@Controller
class TestController {

    @GetMapping
    public String home(){
        return "home";
    }

    @PostMapping("/pay")
    public String pay(){
        // 결제 로직
        // POST방식임으로 새로고침 이슈를 막기위해 redirct로
        // success의 GET방식을 호출한다
        return "redirect:/success";
    }

    @GetMapping("/success")
    public String success(){
        return "success";
    }
}

0개의 댓글