JSP를 이요한 개발 방식이 유지 보수나 URL 변경 등에서 유연하지 못하다는 단점으로 2000년대 중반 이후 개발은 거의 MVC 형식으로 이루어진다.
MVC구조와 서블릿/JSP
서블릿 코드는 자바 코드를 그대로 이용할 수 잇고, 상속이나 인터페이스 처리도 가능하지만, HTTP로 전달된 메시지를 구성하는 HTML을 처리할 때 매우 비효율적이라는 점이 있다.
반대로 JSP는 HTML 코드를 바로 사용할 수 있지만 자바 코드 재사용 문제나 자바 코드와 HTML 혼재 등의 문제가 있다.
이를 절충하여, 브라우저의 요청은 해당 주소를 처리하는 서블릿에 전달되고, 서블릿 내부에서는 응답에 필요한 재료 데이터들을 준비한다. 이렇게 준비한 데이터들을 JSP로 전달하고, JSP에서는 EL을 이용하여 최종적인 결과 데이터를 생성한다. 생성된 결과 화면은 톰캣을 통해 브라우저로 전송된다.
웹 MVC 구조는 'Model - View - Controller'의 역할을 분리해서 처리하는 구조이다.
데이터는 컨트롤러(Controller)에서, 결과는 뷰(View)에서 처리한다. 이전 포스팅에서는 서블릿이 컨트롤러 역할, JSP가 뷰 역할이었다.
컨트롤러 역할인 서블릿은 JSP에 필요한 데이터를 가공하는 역할을 하는데, 가공을 위해 필요한 데이터를 제공하는 객체를 모델(Model)이라고 한다.
MVC구조 설계
개인 프로젝트를 진행하며 깨알 지식(코드 공유는 없습니다ㅜㅜ)
=> github참고 -> hwibinissuccess