MVC

이윤근·2021년 8월 1일
0

MVC(Model View Controller) Design pattern

:Model,View,Controller의 구성요소를 세가지의 역할로 구분한 패턴

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

1)Model

:애플리케이션의 정보 데이터를 나타낸다. 또한 이러한 데이터 정보들의 가공을 책임지는 컴포넌트

-규칙
1.사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.

  • 화면안에 네모박스에 글자가 네모박스의 화면위치 등 정보를 가지고 있어야 한다
    2.뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
  • 데이터 변경이 일어났을떄 model에서 UI를 직접 조정해서 수정할 수 있도록 VIEW를 참조하는 내무 속성값을 가지몬 얀된다.
    3.변경이 일어나면 변경 통지에 대한 처리 방법을 구현해야한다
  • 모델의 속성 중 텍스트 정보가 변경이 된다면 이벤트를 발생시켜 누군가에게 전달해야 하며,누군가 모델을 변경하도록 요청하는 이벤트를 보냈을 때 이를 수신할 수 있는 처리 방법을 구현해야 한다.
    또한 모델은 재사용가능해야 하며 다른 인터페이스에서도 변하지 않아야 한다.

2)View

:user가 보는 화면을 제공한다.출력을 담당한다.데이터 의 기반으로 사용자들이 볼수 있는 화면이다.

-규칙
1.모델이 가지고 있는 정보를 따로 저장해서는 안된다.

  • Model 에서 정보를 전달받는데 이 정보를 유지하기 위해 임의의 뷰 내부에 저장하면 안된다.
    2.모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
  • 데이터를 받으면 화면에 표시해주는 역할만 가진다
  1. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다

3)Controller

:view에서 일어나는 액션과 인풋값을 모델에게 던져주기전에 일련의 가공하는 과정을 한다.이벤트들을 처리하는 부분을 뜻한다.

-규칙
1.모델이나 뷰에 대해서 알고 있어야 한다.

  • 컨트롤러가 중재하기 위해 모델과 그 관련된 뷰에 대해서 알고 있어야 한다
    2.모델이나 뷰의 변경을 모니터링 해야한다.
  • 모델이나 뷰의 변경 통지를 받으면 이를 해석해서 각각의 구성 요소에게 통지를 해야 한다.

4)MVC 패턴을 사용해야하는 이유

:사용자가 보는 페이지 데이터처리, 중간을 제어아는 컨트롤 이 구성이 맡은바에만 집중할수 있어 효율적이게 된다.그래서 유지보수성,애플리케이션의 확장성 유연성 이 중요하고 중복코딩의 무제점이 사라진다.

*한계

View 는 Controller에 연결되어 화면을 구성하는 단위요소이므로 다수의 View들을 가질 수 있다.그리고 Model도 마찬가지로 여러개가 될수 있다. 즉 controller에 다수의 model과 View가 복잡하게 연결되어 있는 상황이 생길 수 있다.그렇게되면 새기능을 추가할 때마다 크고 작은 문제점을 가지고 스스 분석이나 테스트가 어렵게 될 수도 있다.

profile
성실한코딩러

0개의 댓글