Spring MVC란 무엇인가? - 디자인 패턴

스프링 MVC가 가지는 디자인 패턴

MVC는 Model-View-Controller의 약자로 소프트웨어 디자인 패턴의 한 종류입니다.

MVC 아키텍쳐 패턴을 스프링만의 것이라 생각하시는 경우가 많습니다.
하지만 MVC 패턴은 스프링 뿐만 아니라 ASP부터 javascript, Redux를 이용한 React와 같이 다양한 언어와 라이브러리에서 사용되는 아키텍쳐 패턴입니다.

MVC 패턴(출처:위키피디아)

MVC 패턴은 사용자의 요청을 받아 뷰잉 로직과 비즈니스 로직을 분리하는 디자인패턴

모델(Model)

MVC 디자인 패턴에서 정보를 담아두는 역할을 담당한다.
Bean 객체에 해당하며 DB 서버로부터 불러들인 데이터를 담아 View에게 전달한다.

뷰(View)

클라이언트에게 보여지는 화면단을 의미한다.
사용자가 입력한 데이터를 컨트롤러에게 전달하거나 처리 결과를 컨트롤러로부터 전달받는다.

컨트롤러(Controller)

클라이언트로부터 입력받은 데이터를 이용하여 비즈니스 로직을 수행한다.
비즈니스 로직의 처리 결과를 뷰에게 전달한다.


이 외에 MVP(Model-View-Presenter), MVVM(Model-View-ViewModel) 다양한 디자인 패턴이 존재한다.(해당 내용은 별도 포스트 예정)

스프링은 MVC 패턴과 함께 Front Controller 패턴을 따른다.
Front Controller 패턴은 클라이언트의 요청을 받은 배치 관리자(Dispatcher)가 적합한 Controller를 실행 시키는 구조를 가진다.

Front Controller 패턴(출처:위키피디아)

스프링 MVC에서는 Dispatcher Servlet이 이러한 역할을 담당한다.

Share