[아키텍처 패턴] MVC 모델2
MVC 모델2
애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller)라는 세 가지 역할을 나눔
IPO에 견주어보면 입력 - 컨트롤러 / 처리 - 모델 / 출력 - 뷰에 해당하지만, 컨트롤러에 전체의 흐름을 제어하는 역할이 부여되었다는 점이 다름
MVC 모델을 기반으로 삼으면 로직과 디자인의 분리를 구현할 수 있음. 로직은 모델, 디자인은 뷰가, 컨트롤러는 접착제 역할
IPO : 입력(Input), 처리(Process), 출력(Output)이라는 컴퓨터 처리의 기본적인 흐름
구성요소
모델(Model)
애플리케이션의 처리 부분과 그와 관련된 정보의 보존을 담당
화면에 대한 입출력같은 부분에는 일절 관여하지 않음
뷰(View)
모델의 결과를 화면에 표시하는 역할을 담당
처리 결과는 모델이 갖고 있으므로, 뷰는 모델에서 처리 결과를 추출하여 사용자가 보기 편한 형태로 만든 후 화면에 표시
모델과는 반대로 화면에 표시하는 역할만 하며, 정보 처리에는 일절 관여하지 않음
컨트롤러(Controller)
화면에서의 정보 입력과 모델의 호출, 그리고 그 결과에 따른 뷰의 호출을 담당
사용자가 화면에 입력한 정보를 추출해 처리를 담당하는 모델에 넘김
모델의 처리 결과에 따라 결과를 표시할 뷰를 선택해 호출
이름 그대로 전체의 흐름을 제어
처리 흐름
1. 컨트롤러 - 웹 브라우저에서 송신된 요청을 접수하고 요청에서 매개변수를 추출
2. 컨트롤러 - 입력 정보를 처리할 모델을 호출해 각 매개변수를 넘김
3. 모델 - 매개변수를 바탕으로 입력 정보를 처리하고, 컨트롤러에 반환(처리 결과 자체가 아닌 작업이 올바르게 성공했는지 여부정도)
4. 컨트롤러 - 모델에서 받은 상태를 바탕으로 표시해야 할 화면을 선택하고 그 화면을 표시하기 위한 뷰를 호출
5. 뷰 - 모델을 참조해 표시해야할 정보를 추출하고, 그 결과를 HTML로 출력해 HTTP 응답으로 웹 브라우저에 돌려보냄
기타
MVC 모델 vs MVC 모델2
MVC 모델은 웹 애플리케이션을 위해 고안된 아키텍쳐는 아님.
원래는 1980년대 스몰토크(Smalltalk)라는 프로그래밍 언어를 이용해 사용자 인터페이스가 탑재된 애플리케이션을 구축하기 위해 고안된 것
서블릿과 JSP를 이용하는 MVC 모델의 경우 위와 구분하여 MVC 모델2라고 부름
비즈니스 로직이란?
애플리케이션 고유의 처리
MVC 모델의 모델 부분에 해당함
'JAVA > Design Patterns' 카테고리의 다른 글
04 Builder 패턴 (0) | 2021.12.10 |
---|---|
03 Template Method 패턴 (0) | 2021.12.10 |
02 Singleton 패턴 (0) | 2021.12.10 |
01 Strategy 패턴 (0) | 2021.12.10 |
[자바 디자인 패턴] 구조패턴 - 프록시 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 플라이웨이트 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 퍼사드 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 데코레이터 패턴 (0) | 2021.03.17 |