Design Pattern

MVC (Model-View-Controller)

Binceline 2012. 12. 10. 15:18

-----

MVC (Model-View-Controller)

프로그래밍을 할적에 사용되는 디자인패턴이다. Objective-C 외에도 java나 php 등에도 이미 사용되어왔던 모델패턴이며,
이 패턴을 잘 지켜 프로그래밍을 하여 궁극적으로 확장 및 유지보수가 편하도록 하는데 목적이 있다.
[ MVC 모델 기본구조 ]
Model          ↔          Controller          ↔          View
View : 데이터(객체)의 입력과 출력을 담당한다. view는 필요에 따라 model 로 부터 객체의 상태를 요청할 수 있고 응답
받은 상태에 따라 다른 출력 형식을 가지고 있으며 controller 에게 전달 시 상태정보를 같이 보낼 수 있다.
일반적으로 사용자가 보게되는 화면 그 자체의 의미로 생각할 수 있고, 사용자의 입력을 컨트롤러에게 요청하고
최종적인 output 을 화면(view)에 뿌려지게 된다.
Controller : 객체 또는 데이터의 흐름을 담당한다. 활성화 상태의 view에서 넘겨받은 사용자 요청을 판단하여 어떤 model
에게 전달할지 또는 추가작업이 필요없는 경우 직접 최종 output 을 자체 전달할지를 판단하여 처리한다.
model과 view 중단다리 역할을 담당한다고 생각하면 된다.
Model : controller 에게 전달받은 객체 또는 데이터를 로직에 따라 가공 및 처리하는 책임을 가진다. 필요에 따라 view나
controller 에게 변경된 객체의 상태를 전달할 수 있다. 판단하여 처리한다는 의미로서는 controller 와 동일하지만
차이점은 model 은 내부 로직에 따라 처리한 후 직접 view에게 전달하는 경우가 없다. controller 에게 요청받은
것을 자체 처리한 후 결과 및 제어권을 controller 에게 다시 위임하게 된다.
또한, 조금 확장된 의미로써 model(들)이 내부 로직에 따라 처리함에 있어서 model 만이 참조가능한 하부에
DB등을 놓고 controller 에게 처리된 결과를 넘겨주게 된다.
MVC의 핵심은 Model과 View는 서로를 완전히 모르는 상태에서 Controller가 그 둘을 연결시키는 것이다.
재사용성을 위하는데 목적이 있으며, view가 변경되거나 다른 view를 사용해야 할 경우와 model 변경되거나
다른 model 을 사용해야 할 경우 controller만 수정하면 되므로 프로그램 확장 또는 수정이 수월해진다.

반응형