본문 바로가기
백수/java

20. 스프링의 MVC에 대해 설명하세요

728x90
반응형

MVC 란

MVC 패턴은 애플리케이션을 개발할 때 사용하는 디자인 패턴입니다.

애플리케이션의 개발 영역을 MVC(Model, View, Controller)로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식입니다.

  1. Model
  • Model은 데이터 관리 및 비즈니스 로직을 처리하는 부분입니다.
  • @Service를 통해 스프링 컨테이너에 등록된 객체는 Model에 해당됩니다.
  1. View
  • 비즈니스 로직의 처리 결과를 통해 사용자 인터페이스가 표현되는 구간입니다.
  • Model을 통해 전달받은 데이터가 어떤 데이터인지 상관하지 않습니다.
  • html, jsp 등 화면을 구성하기도 하고 Rest API서버가 구현된다면 json 응답으로 구성됩니다.
  1. Controller
  • Model, View를 연결해 주는 역할을 합니다.
  • 사용자 요청 → Controller → Model → View
  • @Controller를 통해 스프링 컨테이너에 등록된 객체는 Controller에 해당됩니다.

MVC1

  • 사용자(브라우저)로부터 요청이 들어오면 DB로부터 필요한 데이터를 받은 Model 객체(Java Beab)를 JSP 페이지(View)에 담아 응답을 보내는 패턴입니다.
  • JSP가 View, Controller 역할을 모두 담당하기 때문에 JSP Page내에 너무 많은 코드가 들어가 가독성이 떨어지며 복잡해질 가능성이 존재합니다.

 

MVC2

  • MVC1과 다르게 Controller, View가 분리되어 있어 유지보수가 용이합니다.
  • 역할이 분리되어 있어 MVC1 패턴의 단점을 보완할 수 있습니다.
  • MVC1 패턴보다 구조가 복잡해질 수 있지만 개발자는 M, V, C 중 수정해야 하는 부분이 있는 경우 해당하는 부분만 수정하면 됩니다.

Spring MVC

  • HTTP Request를 처리하는 부분인 Controller, 데이터를 처리해 정제된 데이터를 넣는 Model, 정제된 데이터를 활용해 사용자에게 보이는 View에 대한 역할 분리를 잘해놓았습니다.
  • Spring MVC를 사용하는 경우 인터페이스를 활용해 규격화해 놓아 유연하고 확장성 있게 웹 애플리케이션 설계가 가능 합니다.
728x90
반응형