MVC 패턴이란?

개발 공부 또는 컴퓨터 공학을 전공하거나 실무에서 일할 때 또는 면접을 볼 때 심심치 않게 나오는 용어들이 있습니다. 그 용어 중 하나인 MVC 패턴이란 것을 알아보도록 하겠습니다.

 

먼저 디자인 패턴에 대해서 살펴봅시다. 디자인 패턴이란 많은 엔지니어가 겪는 반복적인 특정 문제들을 규약화된 공법으로 간단하고, 재사용성을 높일 수 있도록 해결해 줄 수 있는 규칙이면서, 개발자들끼리 의사전달의 효율성을 높이는 기법이라고 생각하시면 됩니다. 예를 들어 기온이 영하로 내려가면 사람들은 추위를 느낍니다. 이러한 반복적인 문제를 해결하기 위해 뛰어난 발명가들은 핫팩이란 것을 만드는 방법을 공식화했고 사람들은 언제든 만들어진 핫팩을 가져다 씁니다. 즉 핫팩을 만드는 문서를 디자인패턴이고 핫팩을 만들고 가져다 쓰는 사람을 프로그래머라고 생각하시면 됩니다.

 

자 그럼 본격적으로 MVC 디자인 패턴에 대해서 알아보도록 합시다. MVC 패턴이란 Model–View–Controller의 앞글자만 딴 용어로 어떠한 애플리케이션을 만들 때 프로젝트를 구성하는 구성요소를 세 가지의 역할로 구분하여 나눠놓은 패턴이며 많고 많은 디자인 패턴 중 하나입니다. 간단하게 그림으로 알아보도록 할까요?

 

MVC 패턴 구조도

 

위 그림은 MVC 패턴의 구성도를 보여줍니다. 먼저 USER가 어떠한 기능이 필요하여 VIEW에다가 어떠한 기능을 해달라고 VIEW에 요청을 보냅니다. VIEW는 그 요청에 맞는 기능을 다시 CONTROLLER에 요청합니다. 그럼 CONTROLLER는 그 요청에 해당하는 MODEL을 가져와 USER가 원하는 기능을 수행한 후 그 결과값을 VIEW에다 전송합니다. 처음엔 잘 이해가 안 가시죠? 이것 또한 예를 들어 설명해볼까요?

보통 맥도날드나 KFC 같은 데를 가면 주문 대가 존재합니다. 이러한 주문 대를 VIEW라고 하고 고객을 USER라고 봅니다. USER는 주문 대라는 VIEW를 통해서 치즈버거를 요청하고 그 주문은 점원에게 가게 됩니다. 즉 점원이 CONTROLLER가 되는 것입니다. 그럼 점원은 치즈버거 만드는 법에 따라서 치즈버거 재료를 창고에서 가져와 조합합니다. 여기서 치즈버거 만드는 법에 따라 치즈버거를 만드는 일을 CONTROLLER에서 진행하며 치즈버거 재료 창고가 MODEL이 됩니다. 그리고 다 만들어진 치즈버거는 점원이 주문 대를 통해 고객에게 전달합니다. 이것이 MVC 디자인 패턴의 전부입니다.

자 그럼 저희는 MVC 디자인 패턴의 흐름을 읽어보았습니다. 하지만 각각 MODEL VIEW CONTROLLER가 무엇을 하는지는 대충 감이 잡히지만, 정확히는 모릅니다. 한번 각각의 특징을 자세히 알아보도록 하겠습니다.

 


먼저 VIEW입니다. VIEW는 간단하게 설명하면 사용자가 볼 화면 즉 프론트엔드와 관련된 부분이라고 보시면 됩니다. CONTROLLER와 USER 요청의 출입구 같은 역할을 하며 CONTROLLER가 보내온 데이터를 출력하거나 사용자의 입력을 받는 부분입니다.

 


두 번째로 CONTROLLER입니다. CONTROLLER란 VIEW와 MODEL을 조율하는 조율자 같은 역할이라고 보시면 됩니다. CONTROLLER는 MODEL의 데이터를 추가하거나 삭제하기가 가능하며 업데이트도 가능합니다. 또한, 비즈니스 로직을 여기서 처리하므로 애플리케이션의 중요한 역할을 하는 부분입니다.

 



마지막으로 MODEL입니다. MODEL은 간단하게 말해 데이터들의 목록이 나열된 리스트라고 생각하시면 되며 CONTROLLER의 요청에 맞는 데이터를 CONTROLLER에 반환하거나 갱신, 삭제 등의 역할을 하는 부분입니다. 즉 모델에 존재하는 모든 데이터가 각각의 수식화하여 특정된 이름으로 가지고 있는 역할을 담당하고 있습니다. MVC.NET 같은 경우는 MS SQL의 table과 매칭됩니다.


이것으로 MVC에 대한 전반적인 설명이 끝났습니다. 이 MVC 패턴은 서로의 역할이 딱딱 나뉘어 있습니다. 이 방식은 많은 프레임 워크에서 사용되고 있으며, 자세히 알아두고, 사용방법 또한 알고 있으면 많은 도움이 될 것이므로 꼭 알아두길 바랍니다.

이것으로 MVC 패턴의 설명이 끝이 났습니다. 이 MVC 패턴을 차용하는 프레임워크도 많으며 또 다른 패턴인 MVVM이나 MVP 같은 다양한 패턴들이 존재합니다. 하지만 보통 면접에서 자주 물어보고 또 가장 기초적인 패턴이 MVC 패턴이므로 잘 이해하고 넘어가시면 다른 패턴도 쉽게 이해하기 쉬울 것입니다. 그럼 이것으로 이번 MVC 패턴의 설명을 끝마치도록 하겠습니다.



이 글을 공유하기

댓글