Spring Framework

PRG(Post-Redirect-Get) 패턴

sanghyeon 2023. 10. 5. 21:30

웹페이에서 회원가입이나 글작성 등 post 요청을 한 페이지의 결과창에서 새로 고침을 했을경우 

중복되어 가입되거나 글이 여러개 올라가는등  동일한 작업 및 요청이 계속 되는 경우는 패턴이 안지켜졌을 가능성이 높다.

 

위의 방법을 해결 방법을 해결 하기 위해선 redirect 을 활용하는것이 좋다.

//적용 전 예시 
@PostMapping("/add")
public String addMember(Member member) {
memberRepository.save(member);
return "redirect:/member/";
}

//적용 후 예시
@PostMapping("/add")
public String addMember(Member member) {
memberRepository.save(member);
return "redirect:/member/" + member.getId();
}

리다이렉트의 영향으로 리다이렉트의 주소로 지정 되기때문에 새로 고침하여도 중복 요청이 처리 되지 않게 될 수 있다.

이런 방식을 PRG 패턴이라고 한다.