Development

[Design Pattern] RPG 패턴

PSLeon 2023. 9. 22. 09:27
반응형

RPG 패턴

RPG 패턴이란 POST / REDIRECT / GET 패턴의 약어로, 폼 데이터를 POST하면 REDIRECT(리다이렉트)하여 GET한 페이지를 표시하는 패턴이다.

만약 이 RPG 패턴을 사용하지 않는다면 어떤 일이 발생할까?

폼 데이터를 POST한 다음에 새로고침을 한다고 생각해보자. 이 경우 본래 POST한 내용이 다시 송신되어 폼 데이터가 이중 전송될 가능성이 있다. 이러한 문제를 회피하기 위해 RPG 패턴을 사용하는 경우가 많다.

 

플라스크를 통해 문의 폼을 만든다고 가정하고 이 RPG 패턴을 적용시킨다면 아래와 같은 순서로 사용할 수 있다.

  1. 문의 폼 화면을 표시(GET)한다.
  2. 문의 내용을 이메일로 송신(POST)한다.
  3. 문의 완료 화면으로 리다이렉트(REDIRECT)한다.
  4. 문의 완료 화면을 표시(GET)한다.
Endpoint Methods Rule
contact(문의) GET /contact
contact_complete(문의 완료) GET, POST /contact/complete

flask routes


app.py

세부 코드는 생략


contact.html
contact_complete.html


결과화면