Java/study

MVC(Model, View, Controller) 패턴

Clearing 2022. 6. 28. 22:49
728x90

MVC 패턴은 디자인 패턴 중 하나로 디자인 패턴은 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 

정리하여, 상황에 따라 간편하게 적용해서 쓸 수 있는 것들로 모아 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 

만든 것을 말한다.

하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 M(Model), V(View), C(Controller) 세 개세 개의 영역으로 

분할하고 각 구성 요소에게 고유한 역할을 부여하는 개발 방식이 MVC 패턴이다.

모델은(Model)은 DATA, 정보들의 가공을 책임지는 컴포넌트를 말하며 애플리케이션의 정보, 데이터를 나타낸다. 

데이터베이스, 처음의 정의하는 상수, 초기화 값, 변수 등을 뜻하며, 비즈니스 로직을 처리한 후 모델의 변경사항을 

컨트롤러와 뷰에 전달한다. 모델이 가지고 있는 규칙으로는 

1) 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
2) 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다. 

3) 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.


뷰(View)는 사용자에게 보여지는 부분, 즉 유저 인터페이스(User interface)를 의미한다.

 MVC 패턴은 여러 개의 뷰(View)가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다. 

뷰는 받은 데이터를 화면에 표시해주는 역할을 가지고 있으며 모델에게 전달받은 데이터를 

별도로 저장하지 않아야 하며 사용자가 화면에 표시된 내용을 변경하게 되면 모델에게 전달하여 모델을 변경해야 한다.

뷰가 가지고 있는 규칙으로는 

1) 모델이 가지고 있는 정보를 따로 저장해서는 안됩니다. 

2) 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다. 

3) 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

컨트롤러(Controller)는 모델이나 뷰가 서로의 존재를 모르고 있기 때문에 이들을 이어주는 다리 역할이며 

모델이나 뷰로부터 변경 내용을 통지받으면 이를 각 구성 요소에게 통지해준다. 또한 사용자가 애플리케이션을 

조작하여 발생하는 변경 이벤트들을 처리하는 역할을 수행한다. 컨트롤러는 다음과 같은 규칙을 가지고 있다. 

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

2) 모델이나 뷰의 변경을 모니터링 해야 합니다.

MVC 패턴을 사용하는 이유는 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을

만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복 코딩이라는 문제점 또한 줄어들게

되기 때문이다. MVC 패턴의 한계로는 복잡한 대규모 프로그램의 경우 다수의 뷰와 모델이 컨트롤러를 통해

연결되기 때문에 컨트롤러가 불필요하게 커지는 현상이 발생한다.

728x90

'Java > study' 카테고리의 다른 글

MVC 패턴 사용 예제  (0) 2022.06.30
DAO / VO / DTO  (0) 2022.06.29
파일입출력  (0) 2022.06.27
예외(Exception)와 예외처리  (0) 2022.06.24
컬렉션 프레임워크 - Map  (0) 2022.06.24