본문 바로가기
개발자 전향 프로젝트

MVC , MVC 하는데 MVC가 뭔데?

by 샘오리 2022. 5. 5.

MVC 패턴이란 

Model View Controller 구조라고 할 수 있다.

 

그러면 모델, 뷰 , 그리고 컨트롤러가 무엇일까?

MVC 기초패턴을 아래 그림을 통해 쉽게 이해해보자!

 

첫 시작은 하단의 파란색 원모양의 도형에서부터 우측-> 시계 반대방향으로 흘러간다.

원형에 적힌 USER는 웹페이지를 접속한 이용자, 즉 우리 자신이라고 이해하면 쉽다.

 

여러분이 네이버라는 사이트를 접속하려고 한다고 가정해보자. 

네이버에 접속하기 위해 주소창에 주소를 입력하고 엔터를 치거나 네이버 링크를 클릭하거나

지정된 홈페이지라서 웹브라우저를 그냥 열었거나 하면 네이버가 켜진다.

 

그러면 어떻게 켜지는걸까?

 

우리가 연극을 보면 연출을 돕는 수많은 스텝들이 조명이 꺼졌을 때

무대에 필요한 소품을 재빠르게 옮겨놓곤 한다. 마찬가지이다. 

 

지금이야 PC 성능이 좋고 인터넷 속도가 빠르다보니 요청한 사이트를 누르자마자 순식간에 뜨지만

그 뒤에선 우리 눈에 보이지 않아서 그렇지 다양한 과정이 존재한다.

바로 그 과정이 오늘 우리가 배워볼 MVC 패턴의 개념이고

위 그림이 가장 기초적인 구조라고 할 수 있다.

 

그럼 시작해보자!

 

USER라는 이용자가 가장 먼저 컨트롤러에 가서 요청을 한다. 

컨트롤러는 쉽게 키오스크라고 생각하면 된다.

CONTROLLER == 키오스크(접수원)

나는야 키오스크~ 접수를 받지요

 

키오스크에 주문하고 싶은 메뉴를 선택하면 키오스크가 그 정보를 받아 뒷쪽에 있는 주방에 전달해주듯

컨트롤러 또한 당신이 요청한 정보를 받아서 확인하고 뒷쪽에 있는 모델에게 전달해주는 역할을 한다. 

 

자 그럼 모델은 무엇이고 무슨 역할을 할까? 모델은 주방장이라고 생각하면 된다. 

 

MODEL == 주방장(요리사)

 

손님이 맥도날드에 방문해서 키오스크를 통해 빅맥을 시켰으면 그 요청이 주방에 있는 주방장에 가서

그 주방장이 냉장고를 열어서 재료를 꺼내고 그 재료를 통해 빅맥을 만들어주지 않겠는가? 바로 그것이다.

 

이 그림에는 나오지 않았지만 모든 데이터가 저장된 저장소를 DB, 데이터베이스라고 하는데

DB는 쉽게 냉장고라고 생각하면 된다.

DB = 냉장고 

주방장이 냉장고를 열어 필요한 재료를 꺼내듯 MODEL 또한 DB를 열어서 필요한 정보를 꺼내고

주방장이 요리를 하듯 MODEL 또한 그 정보로 어떠한 연산처리를 한뒤 완성된 물건을 보내주는 것이다.

 

물론 주방장이 손님에게 음식을 직접 건네주지 않듯 키오스크(접수원)이라고 예를 들었던

CONTROLLER를 다시 거쳐서 정보를 전달해주는 게 일반적이다. 

 

 

 

아무튼 CONTROLLER는 모델에게 받은 정보를 VIEW 라는 친구한테 전달하는데

VIEW는 빔 프로젝터라고 생각하면 된다.

VIEW = 빔 프로젝터

이 VIEW가 최종적으로 우리가 사용하는 웹 브라우저에 전달받은 값을 쏴주면

우리가 사용하는 웹브라우저가 그 정보를 띄워주는 것이고 우리는 요청한 값인 네이버를 볼 수 있게 되는 것이다.

이 모든 것이 단 몇초안에 일어나는 것이라고 생각하면 된다.

 

단 이 MVC 패턴은 기본적인 구조이고 이 구조에서부터 다양한 구조들이 파생되었는데 

Spring MVC 가 대표적인 예시이다.

 

스프링 MVC에 대해서는 다음시간에 알아보도록 하자.