mvc --> model view controller의 준말이다
사용자 인터페이스, 데이터 구현하는데 사용되느 소프트웨어 디자인 패턴이라고 부르는데 각각의 역할을 부여해주고 데이터를 처리를 해준다고 볼 수 있다
디자인 패턴이란?
프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리하는 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.
1. 모델 (모델) : 데이터와 비즈니스 로직을 관리합니다.
2. 뷰 : 레이아웃 화면을 처리하는 역할을 한다
3. 컨트롤러 : 명령을 모델과 뷰 부분으로 라우팅해주는 역할
다음그림을 본다면 사용자가 controller을 제어하는과정에서 model에 있는 데이터를 가져오게되고 그 정보를 바탕으로 시각적 푯현을 하는 view를 제어해서 사용자에게 전달되는 방식이 일반적이다
이제 그 상세로 가보겠다
모델 : 애플리케이션의 정보, 데이타를 나타냅니다. 데이타베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다. 또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다.
이 모델은 다음과 같은 규칙을 가지고 있습니다.
1. 사용자가 고치고자하는 데이터를 모두 가지고있어야한다
2. 뷰나 컨트롤러에 대해서 어떤 정보도 알아선 안된다
3. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야 한다
뷰 : input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다. 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당합니다. 데이타를 기반으로 사용자들이 볼 수 있는 화면입니다.
뷰에서는 다음과 같은 규칙들이 있습니다.
컨트롤러 : 데이터와 사용자인터페이스 요소들을 잇는 다리역할을 합니다.
즉, 사용자가 데이터를 클릭하고, 수정하는 것에 대한 "이벤트"들을 처리하는 부분을 뜻합니다.
컨트롤러 또한 다음과 같은 규칙을 이해해야 합니다.
1. 모델이나 뷰에 대해서 알고 있어야 한다.
2. 모델이나 뷰의 변경을 모니터링 해야 한다.
이게 MVC 패턴의 기본이다 그럼 다음에는 Spring MVC로 조금더 심화된 개념을 공부를 해야겠다.