알버트의 개발하는 블로그

[Spring] MVC패턴, MVC모델이란? 본문

웹개발/Spring

[Spring] MVC패턴, MVC모델이란?

알버트 2022. 1. 20. 14:31

1.MVC패턴이란?
MVC패턴은 소프트웨어 디자인 패턴 중 하나이다.
만은 디자인패턴들이 있지만 그 중에 하나가 MVC패턴이라고 생각하며 편하다. 그렇다면 왜 MVC패턴일까?
MVC패턴은 Model, View, Controlloer의 약자이다. 하나의 애플리케이션과 프로젝트를 구성할 때 그 구성요소를 세 가지로 구분한 패턴이다.
사용자가 컨트롤러를 조작하면 컨트롤러는 모델을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 뷰를 제어해서 사용자에게 정보를 전달하게 된다.

 

 


2.모델(MODEL)
모델은 애플리케이션의 정보, 즉 데이터를 나타낸다. 데이터베이스, 상수, 초기화값, 변수 등을 뜻한다. 정보들의 가공을 책임지는 컴포넌트이다. DB에서 데이터를 읽어오든가 업데이트를 하든가 하는 역할을 하는 것이라고 보면 될듯하다.

 


3.뷰(VIEW)
뷰는 화면에 보여지는 컴포넌트들을 말한다. 예를 들면, INPUT 텍스트박스, 체크박스 등과 같은 사용자 인터페이스 요소를 뜻한다. 데이터를 기반으로 사용자들이 볼 수 있는 화면들이다.

 


4.컨트롤러(CONTROLLER)
컨트롤러는 뷰와 모델을 잇는 다리역할을 한다고 보면 될듯하다.
즉, 사용자가 데이터를 클릭하고 수정하는 것에 대한 이벤트를 처리하는 부분이다. 따라서 컨트롤러는 모델이나 뷰에 대해서 알고 있어야 하며 이 부분이 프로젝트 내에 명시되어 있어야 한다. 또한 모델과 뷰를 모니터링해야 한다.

웹개발자가 되어 현장을 뛰다 보니 MVC패턴을 사용하여 프로젝트를 하는 곳이 굉장히 많았다. 또한 거의 대부분의 자바 스프링 기반 프로젝트들이 MVC패턴을 기반으로 하고 있다는 사실을 알게 되었다. 따라서 자바 스프링 웹개발자가 되려고 하는 사람들은 이 MVC패턴에 대해서 자세히 알고 있는 것이 좋을 듯 하다.
(실제로, 웹개발자 면접에서도 빠지지 않고 등장하는 질문 중에 하나가 이 MVC패턴이다. 필자도 많이 질문받아봄)