Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

김규범님의 블로그

[JAVA] MVC 패턴 이해하기 본문

카테고리 없음

[JAVA] MVC 패턴 이해하기

규범김 2020. 11. 4. 13:33

MVC


Model , View , Controller 의 합성어


하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴
MVC 패턴은 하나의 애플리케이션을 구성할 때, 그 구성요소를 모델, 뷰, 컨트롤러의 
세 가지 역할로 분리해서 각자의 역할에만 집중하게 하자는 개념이다.

MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며,
는 사용자 인터페이스 요소를 나타내고, 
컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 

1) Model 


- 데이터를 가지고있는 객체
- 모든 데이터와 상태에 대한 정보와 데이터 처리 관련 로직을 가지고 있다.
- Controller 에서 Model의 상태를 조작하거나 가져오기 위한 인터페이스를 제공한다.
- 기본적으로 View나 Controller에 대해서 관심이 없다.

2) View


- 모델에 포함된 데이터의 시각화를 담당하는 사용자 인터페이스이다.
- 데이터를 그릴뿐, 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 데이터를 그릴뿐, 인터페이스의 행동에 대한 결정은 모두 컨트롤러에게 맡긴다.

3) Controller 


- 애플리케이션의 메인 로직 = 비즈니스 로직이 구현되어 있다.
- 사용자가 View에서 어떤 일을 했는지 해석하고, 그에 따라 Model에게
어떤 데이터를 변경하라고 알려준다.
- Model을 통해서 필요한 데이터를 가져와 응답을 구성한다.
- 데이터와 사용자인터페이스 요소들을 잇는 다리역할을 한다.
- 사용자의 인터렉션을 처리하고, 모델을 조작하며, 최종 UI호 출력될 뷰를 결정한다.


MVC 패턴의 장점


- 유지보수성
- 애플리케이션의 확장성
- 유연성

MVC 패턴의 단점


- Massive ViewController (대규모 MVC 어플리케이션)
- Controller가 무지하게 커지고 복잡해질 수 있다.
- 화면에 복잡한 화면과 데이터의 구성 필요한 구성이라면,
Controller에 다수의 Model과 View가 복잡하게 연결되어 있는 상황이 생길 수 있다.
- 이러한 MVC의 문제점을 보완한 여러 다양한!! 패턴 (MVP, MVVM, Flux, Redux …)이 생겼다.

 

 

MVC 패턴 다이어그램