model1과 model2(MVC패턴)의 다른점

model1과 model2(MVC패턴)의 다른점

728x90

세미프로젝트의 방식에서 사용한 개발방식은 model1의 개발방식이다.

특징

요청 하나당 JSP가 하나씩 필요하다. 디자인 요소(HTML태그) 와 로직요소(자바코드)가 하나의 JSP파일에 같이 존재한다.

단점 로직요소의 재사용성이 떨어진다. 디자인요소나 로직요소 중 하나만 바꾸려고 해도 JSP파일 내용을 전부를 수정해야한다. 유지보수가 어렵다

장점 애플리케이션의 구조가 단순하다. 빠르게 개발에 진입이 가능하다. 구조가 쉽다

그러나 장점보다는 단점을 극복하고 싶다.

그렇게 등장한 방식은 model2방식으로 (MVC패턴이라고 불린다. )

MVC패턴을 활용한 웹 어플리케이션 개발 방식이다.

역사

최초의 객체지향언어는 smalltalk이라고 한다. 1970년에 완성되었고, 그때는 web에 대한 존재가 없었다. 최초의 GUI를 개발했으며, 이전에는 commend Line Interface의 방식으로 개발하였다. 애플사의 리사에 활요이 되었으며, 최초로 GUI운영체제를 도입하였다.

그럼 MVC패턴이 뭐지? 색상 : 클릭한다. 행위 : 색이 칠해진다. 보이는 것을 클릭하면 실행동작이 연결된다. 디자인요소와 클릭시 버튼에 대한 로직이 있어야하고 그것을 연결지어 놓아야한다.

보이는 요소와 로직요소를 따로 구현하는 것을 의미한다.

JSP와 java를 다르게 바꾼 것이다.

HOW??? 위의 그림을 보면 프론트컨트롤러, 컨트롤러, 자바클래스 , JSP가 존재하는 것을 알 수 있다. 프론트컨트롤러의 역활 요청 접수 (ex, 로그인과 로그아웃 : 어떤 요청인지 알아낸다. ) ->Spring에서 제공된다. 적절한 컨트롤러를 실행한다. 적절한 JSP로 이동된다. 컨트롤러 java코드의 로직요소가 들어간다. 실질적인 요청을 처리한다. 여러개가 존재한다. 클라이언트의 요청을 처리한다. JSP에서 하는 일을 옮겨 놓은 것이다. 만들어낼 DB를 JSP에게 특별한 방법으로 데이터를 전송한다. 자바클래스 vo, dao,dto,service로 컨트롤러에서 요청처리를 위해서 사용된다. JSP 디자인요소를 구성한다. 데이터의 표현을 담당한다. 프론트컨트롤러의 요청을 받는다. 그리고 응답으로 보여지는 부분이다. JSP에서 디자인은 html로 자바의 경우 <% %>사용하여 이용되었고,

for문과 if문을 코드로 사용했었다. 이제는 사용하지 않을 예정이다.

EL

자바의 코드를 사용하지 않게 해준다. JSTL 자바의 코드없이 if문과 for문의 사용이 가능해진다. 이 언어를 사용하여, 자바코드를 사용하지 않고, 데이터 뿌리는 것이 가능해진다.

model1은 요청처리시 JSP파일을 만들었어야했다.

model2는 요청처리시 컨트롤러와 JSP를 만들어야한다. 개발의 양은 많아지지만, 프론트컨트롤러는 MVC패턴에서는 전부 프레임워크가 제공된다.

728x90

from http://lionpower.tistory.com/252 by ccl(A) rewrite - 2021-12-09 20:01:43