[Web] MVC / PRG

2024. 9. 10. 14:29자바 웹 개발/서블릿 기초

MVC이전에는?

웹 개발은 크게 두 가지 방법으로 만드는 것이 가능하다. 하나는 Servlet이고, 또 하나는 JSP이다. Servlet은 자바코드를 사용할 수 있어서 장점(예를 들어 상속같은)이 있지만, HTML 코드를 작성하면 직관성이 떨어진다는 단점이 있다. 

 

그래서 JSP을 통해서 이를 보완할 수 있다. 실제로 재사용을 하지 않는다는 가정 하에는 JSP의 개발 속도는 상당히 빠르다. 하지만 JSP에 모든 코드를 다 집어넣으면 복잡성이 높아지고 보안에도 문제가 발생할 수 있다. 특히 버전업을 하면서 파일 이름을 바꾸게 된다면 사용자들에게 변경된 URL을 매번 알려주어야 한다. 

 

MVC란?

MVC는 이를 해결하기 위해 Controller, View, Model을 나누어 개발하는 방식이 사용되기 시작했다. 모든 요청을 Controller에서 처리하면 되니 사용자는 View가 바뀌어도 알아차리지도 못하고 신경쓸 필요도 없다. 즉, URL을 고정한 채 모든 처리가 가능해진다는 의미다. 그래서 화면을 보여줄 필요가 없는 Controller는 Servlet으로, 화면을 담당하는 작업은 View로 나뉘어지게 되었다. 

 

PRG패턴

PRG는 웹의 기본적인 패턴이다. 방식은 다음과 같다. Post방식일 때만 나오는 화면이 뒤로가기, 앞으로가기, 새로고침 등으로 계속 호출되는 것을 방지하기 위해 만든 방식이다. 즉, 반복적으로 Post 호출을 막기 위한 패턴이다. 

 

Post 방식 호출 -> Controller A 처리 -> redirect -> 페이지 이동 -> Get 방식 호출 -> Controller B 처리 -> 브라우저 응답

 

 

PRG 패턴 (Post/Redirect/Get)

개요 PRG 패턴의 경우 실제 현업에서 자주 사용하므로 개념을 숙지할 필요성이 있습니다. 상황 설명 아래의 그림과 같이 회원 등록 폼 페이지를 호출하는 컨트롤러 URL과 회원 등록하는 컨트롤러

jaimemin.tistory.com