개요
•
소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.
•
이 패턴을 적절히 사용하는 경우, UI로부터 비즈니스 로직을 분리하여 어플리케이션의 시각적 요소와 그 이면에서 실행되는 비즈니스 로직이 서로 독립적인 어플리케이션을 만들 수 있다.
•
MVC에서 모델은 어플리케이션의 정보를 나타내며 뷰는 텍스트, 체크박스 항목과 같은 사용자 인터페이스 요소를 나타내고 컨트롤러는 데이터와 비즈니스 로직 사이의 상호 동작을 관리한다.
•
사용자가 보는 페이지, 데이터 처리, 이 둘의 제어로 구성되는 어플리케이션을 만들면 각각이 독립적으로 수행되므로 책임을 효과적으로 분리할 수 있다.
◦
유지보수성, 어플리케이션의 확장성, 유연성이 증가하고 코드의 중복을 줄일 수 있다.
구성요소
•
모델
◦
모델이란 어떠한 동작을 수행하는 코드를 말한다. 특정 표시 형식에 의존하지 않는다.
◦
모델은 상태의 변화가 있을 때, 컨트롤러와 뷰에 이를 통보한다.
◦
이와 같은 통보를 통해서 뷰는 최신의 결과를 유지할 수 있고 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 수행할 수 있다.
•
뷰
◦
모델은 여러 개의 뷰를 가질 수 있는데, 뷰는 보여줄 값을 컨트롤러로부터 받아와 사용자에게 보여준다.
◦
뷰는 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 받아온다.
•
컨트롤러
◦
뷰는 여러 개의 컨트롤러를 가지고 있다. 사용자는 컨트롤러를 이용해 모델의 상태를 변경한다.
◦
컨트롤러는 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.
◦
컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다.
의의
•
어떻게 나눌 것인가에 대한 해답 중 하나다. 어떤 특정한 역할들에 대한 역할 분담을 해야할 때, 가이드라인을 제시해준다는 것이다.