yngmanie 블로그

MVC 패턴이란

해당 포스트는 MVC Design Pattern를 번역하여 작성하였습니다. 잘못된 부분이 있다면 댓글 부탁드립니다.

Model View Controller(MVC) 디자인 패턴은 어플리케이션을 데이터모델, 표시되는 정보, 컨트롤 정보로 구분합니다. MVC 패턴은 각각을 다른 객체로 구분합니다.

design components

  • Model은 어플리케이션 데이터로만 이루어져있습니다. 데이터가 유저에게 어떻게 보일지에 대해서는 아무런 로직이 없습니다.
  • View는 모델의 데이터를 유저에게 보여줍니다. View는 Model의 데이터에 접근하는 방법을 알지만 데이터가 의미하는 바나 유저가 수정한 데이터가 어떤건지 알 수 없습니다.
  • Controller는 View와 Model사이에 존재합니다. View를 통해 이벤트 트리거를 캐치하고(혹은 다른 외부 소스를 통해서) 이벤트에 대한 적절한 반응을 실행합니다. 대부분의 반응은 Model에 있는 메소드를 호출합니다. View와 Model이 연결되어있기때문에 행동의 결과는 자동적으로 View에 반영됩니다.

장점

  • 여러 개발자들이 Model, Controller, View에서 동시에 작업할 수 있습니다.
  • MVC는 논리적으로 관련된 액션을 그룹핑할 수 있습니다. 특정 Model에 대한 View 또한 그룹핑할 수 있습니다.
  • Model은 여러개의 View를 가질 수 있습니다.

단점

  • 프레임워크 네이게이션이 복잡해질 수 있습니다. 왜냐하면 추상화에 대한 새로운 개념을 소개하고 사용자에게 MVC 기준으로 재구성하도록 요구하기때문입니다.