사용자의 인터페이스에서 비즈니스 로직을 분리하여서 애플리케이션의 시작적인 요소나, 애플리케이션 내부에 동작하는 비즈니스 로직들을 서로 영향없이 수정을 할 수 있게 해주는 것을 의미한다.

시각화 된 MVC패턴
Model:애플리케이션의 데이터를 의미한다.
-뷰 또는 컨트롤러의 어떠한 정보도 가지고 있어선 안된다. 사용자가 이용하는 모든 정보들을 가지고 있어야 한다.
-변경이 일어나면 그에 따른 상호작용이 일어나야한다.
View: 애플리케이션의 화면을 구성하기 위해서 모델로 부터 정보들을 불러온다
-모델이 가지고 있는 정보를 저장하면 안된다.
-단순히 정보들을 표현하는 기능만을 가지고 있어야함.
Controller: 데이터와 비즈니스 로직 사이와의 상호관계를 관리해준다.
*참고:비즈니스 로직: 실세계의 규칙에 따라서 데이터를 생성, 저장, 수정,삭제 등을 하는 행위를 일컫는다.

사진에 볼 수 있듯이 JSP에서 사용자의 요청을 처리하고(Controller) 모델에서 받아온 정보들을 가져와 브라우저에 출력을 한다.(View역할) ->JSP에서 뷰와 컨트롤러 기능들을 구현을 해야하기 때문에 코드의 유지보수가 힘들다.

클라이언트의 요청과 전체적인 프로그램의 제어는 컨트롤러가 담당을 하고, 비즈니스 로직은 빈이 처리를 하며, 화면에 출력을 하는 기능은 뷰가 담당을 한다.
--> 기능들을 서로 분활하여 처리하기 때문에 코드의 유지보수가 더욱 용이해지는 장점을 가진다.