Development
[Design Pattern] RPG 패턴
PSLeon
2023. 9. 22. 09:27
반응형
RPG 패턴
RPG 패턴이란 POST / REDIRECT / GET 패턴의 약어로, 폼 데이터를 POST하면 REDIRECT(리다이렉트)하여 GET한 페이지를 표시하는 패턴이다.
만약 이 RPG 패턴을 사용하지 않는다면 어떤 일이 발생할까?
폼 데이터를 POST한 다음에 새로고침을 한다고 생각해보자. 이 경우 본래 POST한 내용이 다시 송신되어 폼 데이터가 이중 전송될 가능성이 있다. 이러한 문제를 회피하기 위해 RPG 패턴을 사용하는 경우가 많다.
플라스크를 통해 문의 폼을 만든다고 가정하고 이 RPG 패턴을 적용시킨다면 아래와 같은 순서로 사용할 수 있다.
- 문의 폼 화면을 표시(GET)한다.
- 문의 내용을 이메일로 송신(POST)한다.
- 문의 완료 화면으로 리다이렉트(REDIRECT)한다.
- 문의 완료 화면을 표시(GET)한다.
Endpoint | Methods | Rule |
contact(문의) | GET | /contact |
contact_complete(문의 완료) | GET, POST | /contact/complete |
세부 코드는 생략
결과화면