본문 바로가기
What is □?

04. MVC 패턴이란 무엇인가?

by 전봇대파괴자 2021. 3. 23.

 

웹 프로그램 개발 시 일반적으로 적용되는 설계 구조를 의미한다. 어떤 의미로는 공식과 비슷한 것이라고 할 수 있다. MVC는 프로젝트의 구성 요소를 Model, View, Controller로 구분하며 각각의 구성 요소는 다른 요소들에게 영향을 미치지 않는다.

 

Model데이터베이스에 저장되는 데이터와 그 데이터를 처리하는 유형과 방법을, View사용자의 요청에 대한 결과물을 시각적으로 보여주는 역할을, Controller는 요청에 따라 Model에게 적절한 로직을 가동하도록 지시하고 Model이 응답하면 그 결과를 View에 전달하는 역할을 한다. Model과 View를 이어주는 역할을 담당하는 것이다. 구체적인 예시는 아래와 같다.

 

  1. 사용자가 Controller에 요청을 보낸다.(ex. 로컬에 있는 이미지 경로를 입력하고 업로드 버튼을 누른다)
  2. Controller가 Model에게 요청에 맞추어 데이터를 수정할 것을 지시한다.(ex. 이미지 데이터를 디코딩하여 데이터베이스에 저장하라고 지시)
  3. Model은 지시대로 데이터를 수정하고 Controller에게 지시사항을 완료했음을 알린다.(ex. 이미지를 저장)
  4. Controller는 수정된 데이터를 토대로 웹페이지 화면에 표시할 내용을 결정하여 View에게 화면을 출력할 것을 지시한다.(ex. 저장된 이미지를 업로드할 위치에 출력하고 업로드 완료라는 메시지를 띄우라고 지시)
  5. View가 화면을 출력한다.

MVC는 개발자와 디자이너의 작업 영역을 분리할 뿐 아니라 유연성이 높고 유지보수가 용이하다는 장점이 있다. 하지만 프로젝트 규모가 커질수록 컨트롤러가 지나치게 커지고, 유지보수가 점점 어려워진다는 단점이 있다. 이 단점을 보완하기 위해 MVP, MVVM 등 새로운 디자인 패턴도 쓰이고 있다.