[JAVA] MVC패턴

unoung·2022년 6월 26일
0

JAVA

목록 보기
6/6

MVC 패턴이란?

어플리케이션을 세 개의 영역으로 분할하고 각 구성 요소에게 고유한 역할을 부여하는 개발 방식이다. MVC 패턴을 도입하면 도메인(비즈니스 로직) 영역과 UI 영역이 분리되므로 서로 영향을 주지 않고 유지보수가 가능하다.

Model-View-Controller

  • Model: 데이터와 관련된 부분
  • View: 사용자한테 보여지는 부분
  • Controller: Model과 View를 이어주는 부분

Process

  1. Controller로 사용자의 입력이 들어온다.
  2. Controller는 Model의 데이터를 업데이트 및 읽어온다.
  3. Model은 해당 데이터를 보여줄 View를 선택해서 화면에 보여준다.

1. Model

모델(Model)은 어플리케이션의 정보, 데이터를 나타낸다. 데이터베이스, 처음의 정의하는 상수, 초기화 값, 변수 등을 뜻한다. 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달한다.

  • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  • 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
  • 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야만 한다.

2. Controller

모델과 뷰를 관장하는 브릿지(Bridge)역할을 수행한다. 사용자가 버튼을 클릭하면 이벤트는 뷰에서 발생하지만 내부 처리는 컨트롤러에서 관리하는 것이다. 또한, 입력이 발생하면 이에 대한 통지를 담당한다.

  • 모델이나 뷰에 대해서 알고 있어야 한다.
  • 모델이나 뷰의 변경을 모니터링 해야 한다.

3.View

텍스트박스, 라벨, 버튼 등 사용자 인터페이스(User interface) 요소들을 의미한다. 사용자가 제어하고 데이터를 확인할 수 있는 영역이다. 뷰에서는 별도의 데이터를 보관하지 않는다. 뷰에서 입력받고 출력해주는 모든 데이터는 모델을 사용해야한다.

  • 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  • 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
  • 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.


MVC 패턴을 사용하는 이유

사용자가 보는 View, Model, 이를 제어하는 Controller로 각각 분리하여 프로그램을 개발하면, 중복개발되는 부분을 방지할 수 있어 개발시 효율성이 증대될 뿐 만 아니라, 추후 프로그램의 유연한 확장성을 가질 수 있으며, 어떠한 부분에서 문제가 발생하더라도 다른 부분에 최소한의 영향을 주며 변경할 수 있기 때문이다.

단점

Controller가 Model과 View에 대한 모든 처리를 담당하고 있기 때문에 어느선까지는 효율적인 관리가 가능하지만 프로그램이 복잡하고 무거운 대규모 프로젝트에서는 Controller에서 업무가 과중될 수 있다.

개발과 유지 보수가 용이하도록 설계한 모델이지만 일정 수준이상의 복잡한 프로젝트에서는 수정시 테스트가 힘들고 하나의 수정이 다른 부분에 영향을 미치는 등 역효과가 날 수 있음.




참고자료 : https://github.com/CS-studi/CS-study/blob/master/CS/SoftwareEngineering/MVC_MVVM.md https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC

profile
복습 블로그

0개의 댓글