Design Pattern - MVC

luneah·2022년 2월 21일
0
post-thumbnail

디자인 패턴은 소스코드나 개발에 필요한 리소스를 어떤 방식으로 구조를 만들고 사용할 지를 말하는 것이다. 개발을 계속 진행하게 되면 자연스럽게 규모가 커지는데 유지보수의 불편함을 느끼게 된다. 이 불편함을 최소화 하기 위해서 디자인 패턴을 적용하는 것이다. 디자인 패턴은 많은 종류가 있는데 이는 개발자들이 자신의 프로젝트의 구조를 어떻게 짜냐에 따라 달라지기 때문이다.

오래전 개발자들은 이러한 패턴들이 없었을 때에 마음대로 프로그램을 구성하여 개발을 했지만 유지보수나 협업을 하는 과정에서 큰 불편함을 겪었고, 이를 해결하기 위해 수많은 패턴들이 시도되고, 공유되었고, 논문들도 발표되었다. 그 패턴 중 하나가 MVC다.

MVC 구조 및 역할

  • Model은 data와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비즈니스 로직을 처리하기 위한 역할을 한다. 즉, 모델은 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 관련된 비즈니스 로직을 처리한다.

Model은 두 가지 규칙이 있는데, 첫 번째는 사용자가 받아야 하는 모든 데이터를 가지고 있어야 한다. 둘째는 View나 Controller에 대해서 어떤 정보도 알지 못해야 한다.

  • View는 사용자에게 보여주는 화면에 해당한다(html, css)사용자와 상호작용을 하면서 Controller에게 받은 모델의 결과값을 사용자에게 화면으로 출력하는 일을 한다.
    View역시 두 가지 규칙이 있는데 첫째는 컨트롤러로 부터 전달받은 Model의 정보를 따로 저장할 수 없다. 둘째는 Model이나 Controller에 대해 어떤 정보도 알지 못해야 한다.

  • Controller는 Model과 view를 이어주는 인터페이스 역할을 한다. 사용자로부터 View에 요청이 있으면 Controller는 Model을 호출하여 정보를 받아와 결과를 View에게 전달하는 역할을 한다.
    Controller는 Model이나 View에 대해서 알고 있어야 한다. 또한 Model이나 View의 변경을 모니터링해야 한다.

  • MVC의 핵심은 각 구성요소들을 독립시켜 맡은 역할에만 집중시켜 개발의 효율성을 높이고 독립된만큼 유지보수와 확장성도 용이하다.
  • 비즈니스 처리 로직(Model)과 인터페이스 요소(View)를 분리시킴으로써 로직 재사용이 가능하다.
  • MVC패턴은 단순하고 직관적이라 하나의 파일에 코드가 모이는 걸 방지하여 가독성과 재사용성을 증가시킨다.

profile
하늘이의 개발 일기

0개의 댓글