날아라쩡글이의 블로그입니다.

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

중앙 HTA (2106기) story/JSP story(Apache)

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

날아라쩡글이 2021. 12. 9. 19:42
반응형

세미프로젝트의 방식에서 사용한  개발방식은 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패턴에서는 전부 프레임워크가 제공된다.
반응형
Comments