model - view - controller 패턴으로 1모델과 2모델로 나뉘어진다.
<MVC model 1.>
user 로부터 받은 요청을 controller 가 정리하여 model 로 보내고, model 은 DB 또는 내부에서 처리하여 결과를 다시 controller 에게 보낸다.
controller는 최종적으로 user 에게 응답(표현)해준다.
model 1 에서는 jsp페이지가 컨트롤러 및 뷰의 역할을 도맡아하며 비교적 코드작성이 용이하고 간단하다는 장점이 있다.
하지만 역할이 분화되어있지않아 jsp 파일이 너무 커질우려가 있고, 향후 유지및 보수에 어려움이 따른다.(분업화 힘듬)
<MVC model 2.>
작동 방식은 model 1 과 동일하다.
다만, controller(servlet) 와 view(jsp) 가 나뉘어 있어 코드작성이 model 1 에 비해 어렵고, 개발에 시간이 더 걸린다는 단점이 있다. 하지만 반대로 역할이 분화되어 프론트, 엔드/ 디자이너, 개발자의 분업이 가능하고 유지 및 보수가 용이하다는 점이 장점이다.
현업에서는 주로 model 1 보다 model 2 방식이 선호된다.
java bean
여러 오브젝트들을 하나의 오브젝트에 담기 위한 규칙이 있는 클래스로, 프로토콜과 유사한 개념.
controller 대신 view model 이 들어간 패턴으로, view와 view model이 서로 binding 되어있어 코드작성이 용이하고,
서로 독립되어있어 개별작업이 수월하다.
다만 view model 을 개발하는데 어려움이 있을 수 있다.
view 에서 받은 요청을 view model 이 model 에 전달하고, model 로부터 받은 데이터를 view model 이 저장, 갱신하면
data binding 으로 인해 view 도 자동적으로 갱신이 완료된다.