거북목개발자

MVC Architecture 본문

Etc

MVC Architecture

거북목개발자 2022. 9. 12. 16:50
728x90

디자인패턴

디자인 패턴이란?

  • 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여
    특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.

  • 쉽게 말해, 좀 더 쉽고 편리하게 사용할 수 있도록 만든 특정한 방법들을 디자인 패턴이라고 한다.

    MVC 패턴이란?

    image

  • MVC 패턴은 디자인 패턴 중 하나이다.

  • MVC란 Model, View, Controller의 약자로 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.
    image

  • 위의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는
    View를 제어해서 사용자에게 전달하게 된다.

    Model (백그라운드에서 동작하는 비즈니스 로직(데이터) 처리)

  • Application의 정보, Data와 같이 Database, 처음에 정의하는 상수, 초기화 값, 변수 등을 뜻한다.

  • 또한, 이러한 Data, 정보들의 가공을 책임지는 컴포넌트를 말한다.

    View (정보를 화면으로 보여주는 역할)

  • Input text, Check box 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 다시 말해 데이터 및 객체의 입력, 보여주는 출력을 담당한다.

  • Data를 기반으로 사용자들이 볼 수 있는 화면이다.

    Controller (사용자의 입력 처리와 흐름 제어 담당. 화면과 Model과 View를 연결시켜주는 역할)

  • 데이터와 사용자 인터페이스 요소들을 잇는 다리 역활을 한다.

  • 사용자가 데이터를 클릭하고, 수정하는 것에 대한 이벤트 들을 처리하는 부분을 뜻한다.

    MVC 패턴 동작 순서

  1. 사용자의 Action들은 Controller에 들어오게 된다.
  2. Controller는 사용자의 Action을 확인하고, Model 을 업데이트 한다.
  3. Controller는 Model을 나타내줄 View를 선택한다.
  4. View는 Model을 이용하여 화면에 나타낸다.

    MVC 패턴 사용 이유?

  • 사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성해 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 되어 효율적이게 된다.
  • 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행가능
  • Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성, 유연성에 유리함
  • 중복 코딩의 문제점 제거

    MVC 패턴의 장점?

  • 유연하고 확장하기 쉽다.
  • 디자이너와 개발자의 협업이 용이하다.
  • 유지보수 비용을 절감할 수 있다.

    MVC 패턴의 단점?

  • 기본 기능 설계를 위해 클래스들이 많이 필요하기 때문에 복잡할 수 있다.
  • 설계시간이 오래 걸리고 숙련된 개발자가 필요하다.
  • Model과 View의 의존성이 높아 Model과 View의 완벽한 분리가 어렵고 Model과 View의 높은 의존성은 Application이 커질수록 복잡해지고 유지보수가 어려워진다.

    MVC패턴에서 View는 Controller에 연결되어 화면을 구성하는 단위 요소이므로 다수의 View를 가질 수 있습니다. 그리고 Model은 Controller를 통해서 View와 연결되지만, Controller에 의해서 하나의 View에 연결될 수 있는 Model도 여러 개가 될 수 있어 View와 Model이 서로 의존성을 띄게 됩니다. 즉, Controller에 다수의 Model과 View가 복잡하게 연결되어 있는 상황이 발생할 수 도 있습니다.

    MVC 패턴의 의의?

  • MVC 패턴은 결국 어떻게 나눌 것인가에 대한 해답 중 하나이다.
  • 어떤 특정한 역할들에 대해 역할 분담을 할 때 가이드라인을 제시하는 방법 중 하나가 바로 MVC 패턴인 것이다.

예상 질문

MVC 패턴이란?
MVC 패턴을 사용하는 이유는?
MVC 패턴의 장단점?

참고링크

https://m.blog.naver.com/jhc9639/220967034588
https://server-engineer.tistory.com/167
https://cocoon1787.tistory.com/733

728x90
Comments