MVC Model1과 MVC Model2

신광진·2021년 3월 18일
1

MVC 패턴


MVC패턴은 소프트웨어 공학에서 사용되는 디자인 패턴 중 하나입니다.

MVC패턴은 사용자 인터페이스와 비즈니스 로직을 분리하여 각각의 로직을 독립적으로 운용하여 유지보수를 용이하게 만들 수 있는 디자인 패턴입니다.

MVC 구성요소


  • M (Model)

    • Model은 내부 비즈니스 로직에 해당합니다.
      즉, 백그라운드 로직으로써 처리되는 알고리즘, 데이터, DB와의 상호작용 등등을 담당합니다.
  • V (View)

    • View는 사용자 인터페이스(UI)를 의미합니다.
      요청에 대한 처리결과를 View를 통해 클라이언트에게 화면을 통해 보여줍니다.
  • C (Controller)

    • Controller는 Model과 View사이에서 중계자 역할을 수행하며, 클라이언트의 요청을 처리하고 흐름제어를 담당합니다.

MVC Model1


MVC Model1은 View와 Controller를 JSP에서 모두 구현하는 구조를 가지고 있습니다.

따라서 클라이언트의 요청을 받는것도 JSP, Model과 상호작용을 하여 변경된 Model을 사용하여 View를 다시 그려내는것도 JSP입니다.

즉, 사용자의 요청처리와 요청에 대한 응답처리를 JSP에서 모두 구현하는 구조입니다.

위의 특징때문에 MVC Model1구조는 흐름이 단순하기 때문에 개발이 쉽고 중소형 프로젝트에 적합하다는 장점이 있습니다.

하지만 프로젝트의 규모가 커질수록 유지보수가 어려워지고, View와 Controller가 하나의 JSP에 합쳐져 있기때문에 디자이너와 개발자의 협업에 어려움이 생길 수 있습니다.

MVC Model2


MVC Model2MVC Model1과는 다르게 View와 Controller가 분리된 구조를 가지고 있습니다.

클라이언트의 요청을 처리, 흐름제어를 하면서 필요시 Model과 상호작용을 하는 Controller는 Servlet에서 담당하고, 사용자 인터페이스를 보여주는 View는 JSP에서 담당하고 있습니다.

이렇게 Controller와 View를 분리함으로써 클라이언트의 요청처리 부분과 응답처리 부분을 분리하여 각 로직을 독립적으로 수행할 수 있습니다.

따라서 유지보수 측면에서 매우 좋고 디자이너와 개발자간의 협력이 수월하다는 장점이 있습니다.

하지만 MVC Model1보다 프로그램의 흐름이 복잡하기 때문에 개발 난이도가 높으며, 설계에서 어려움을 겪을 수 있다는 단점이 있습니다.

MVC Model1 VS MVC Model2


MVC Model1MVC Model2에 대해 간략히 알아보았습니다.

두 모델의 핵심적인 차이는 두 가지로 요약할 수 있습니다.

  • 클라이언트의 요청처리와 응답처리가 분리되어 있는가

    • MVC Model1은 요청처리와 응답처리가 모두 하나의 JSP에서 이루어집니다.
    • MVC Model2는 요청처리는 Servlet에서 담당하고 응답처리는 JSP에서 이루어지기 때문에 두 로직이 분리되어 있습니다.
  • 접근방식

    • MVC Model1은 View와 Controller가 하나의 JSP에 존재하기 때문에 클라이언트가 직접적으로 View에 접근할 수 있습니다.
    • MVC Model2에서 클라이언트는 View에 직접적으로 접근할 수 없고 반드시 Controller를 통해서 접근해야 합니다.

두 가지 차이점 중에서도 첫 번째가 가장 핵심적인 차이점이라고 할 수 있습니다.

또한 MVC패턴에 대해 말할때는 보통 MVC Model2를 의미하며, MVC Model1을 사용하여 개발하는 사례는 거의 없습니다.
따라서 우리는 MVC Model2에 대한 개념을 잘 알고있어야 합니다.

profile
이거 왜안되냐

0개의 댓글