본문 바로가기

Computer Science/1일 1주제(면접 대비)

MVC(혹은 MTV) 패턴이란?

일전에 정리했던 내용인데 누락된 것 같아 새롭게 정리하고자 한다.

 

📌 MVC 패턴이란?

디자인 패턴 중 하나이다.

디자인 패턴이란 프로그램이나 어떤 것을 개발하는 중 발생한 문제점을 정리하여 간편하게 적용할 수 있도록 "특정한 규약"을 만든 것을 의미한다.

MVC는 Model, View, Controller의 약자이다. python의 경우는 Model, View, Template라고 통칭한다.

 

출처: 오픈 튜토리얼스

 

 

📌 MVC 패턴의 동작 방식

출처: XESCHOOL

사용자가 Controller(python은 template)를 조작하면 Controller는 Model을 통해 데이터를 가져오고 View가 가져온 데이터를 화면에 뿌려주고 사용자의 요청에 응답하게 된다.

 

 

📌 Model, View, Controller 정의

1) Model

- 데이터를 나타냄. Django을 이용하여 개발할 경우 models.py에 테이블명, 칼럼명, 들어갈 데이터 형식을 지정함으로써 DB를 정의하는 용도로 사용하기도 한다.

 

2) View

- input 텍스트, 체크박스 항목 등 사용자 인터페이스 요소를 나타낸다.

- 데이터 및 객체의 입력, 보여주는 출력 등을 담당하여 데이터를 기반으로 사용자들이 볼 수 있는 화면을 구성한다.

 

3) Controller

- 데이터와 사용자 인터페이스 요소를 잇는 다리 역할을 한다.

- 사용자가 데이터를 클릭하고 수정하는 것에 대한 "이벤트"를 처리한다.

- python은 template 파일을 두어 Controller 역할을 한다.

 

 

🤷‍♀️ 왜 MVC 패턴을 사용해야 할까?

Model, View, Controller 각자 맡은 역할에 충실할 수 있어 어떠한 로직을 처리함에 있어 효율적이기 때문이다.

또한 코드의 유지보수, 어플리케이션의 확장성에 유연하게 되며 중복 코딩이라는 문제점을 사전 방지할 수 있다.

'Computer Science > 1일 1주제(면접 대비)' 카테고리의 다른 글

TCP와 UDP의 차이  (0) 2023.04.03
TCP 3-way handshake  (0) 2023.03.27
HTTP와 HTTPS의 차이  (0) 2023.03.27
웹 소켓이란?  (0) 2023.03.27
Gunicorn이란?  (0) 2023.03.24