이전 포스팅에서는 Model개념을 적용하여 request.serAttribute로 수행하던 파라미터 값을 가져오는 것을 Model을 통해 해결함으로 Servlet에 종속성을 제거하였다. 또 뷰 리졸버를 사용해서 각 컨트롤러에서는 View의 논리적 이름만 반환하도록 설계하여 중복 코드를 제거하고 유지보수 측면에서도 효율성을 높여보았다. MVC패턴과 변천사 - Model과 뷰 리졸버 저번 글에서 MVC패턴이란 무엇이며 왜 사용되는지 쭉 알아보았었고 View를 분리해내고 구현 컨트롤러에서는 View에 주소만 리턴해주고 렌더링은 프론트 컨트롤러에서 처리하도록 설계해봤었다. lee-dev-log.tistory.com 이번 포스팅에서 공부할 내용은 핸들러 개념을 적용하여 컨트롤러의 버전을 유연하게 변경/확장 가능하..

저번 글에서 MVC패턴이란 무엇이며 왜 사용되는지 쭉 알아보았었고 View를 분리해내고 구현 컨트롤러에서는 View에 주소만 리턴해주고 렌더링은 프론트 컨트롤러에서 처리하도록 설계해봤었다. 프론트 컨트롤러는 클라이언트의 요청에 맞는 구현 컨트롤러를 매핑처리해서 호출해주고 호출하는 과정은 다형성을 통해 유지보수에 효과적이도록 설계했다. MVC패턴과 변천사 - 1 이전 글에서 MVC패턴 등장계기는 JSP를 사용할 때, 비즈니스 로직코드인 Java코드와 HTML코드가 한 파일안에 같이 있기때문에 유지보수에 어려움을 겪었고 이 문제를 해결하기위해 MVC패턴을 사용한 lee-dev-log.tistory.com Model 도입 Model은 클라이언트로부터 요청받은 데이터나 서버(DB서버)로부터 제공해야할 데이터를 ..
JSP등장 이전 JSP의 등장 이전에는 클라이언트에게 동적인 코드를 제공하기위해서 Servlet내부에서 서비스 코드를 작성하여 HTML코드와 함께 응답을 해주었다. 클라이언트에게 동적인 화면을 제공해줄수는 있었지만, Servlet내부에서 비즈니스 로직과 HTML코드가 섞여있기 때문에 유지보수가 매우 어려웠고 HTML코드를 제공하는 것 또한 매우 어려웠다 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; imp..