본문 바로가기

Sparta/면접준비

MVC 패턴

Q. MVC 패턴에 대해 설명하시오.

 

A.  편리한  디자인 패턴 중 하나로, Model, View, Controller의 세가지 역할로 이루어져있다. 사용자가 컨트롤러를 조작하면 모델을 통해 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다.

모델은 애플리케이션의 정보, 데이터를 나타내며 그것을 가공하는 컴포넌트이다. 사용자가 편집하길 원하는 모든 데이터를 갖고 있어야하며, 뷰나 컨트롤러와 완벽하게 분리되어야 한다. 는 데이터를 기반으로 사용자가 볼 수 있는 화면을 나타내며 역시 모델이 가지고 있는 정보를 따로 저장해선 안 된다는 대원칙과, 변경이 일어나면 변경통지에 대한 처리방법을 구현해야 한다. 컨트롤러는 데이터와 인터페이스 요소를 잇는 다리역할로 사용자가 데이터를 조작할 수 있게 이벤트를 처리하는 부분을 뜻한다. 유일하게 다른 요소들과 분리되지 않고 컨트롤러 측에서 알고 있어야하며, 양쪽의 변경을 모두 감지해야한다.

이러한 구조는 각각 맡은 부분만 집중해서 만들 수 있게 해줘서 효율적인 작업이 가능하다. 이 패턴을 사용한 프레임워크는 구글의 Angular.js, PHP의 코드이그나이터, 파이썬의 장고가 있다.