MVC 는 Model, View, Controller의 약자 입니다. 웹 개발을 할 때 많이 사용하는 패턴입니다. 제가 생각하는 Model, View, Controller의 정의는 다음과 같습니다.
View: 화면(ex-리액트,,,)
Controller : View와 Model을 연결하고 전체적은 비즈니스 로직을 담당
Model : 데이터, 연산
대부분의 디자인 패턴이 그렇듯 MVC도 유지보수를 용이하기 위해 탄생한 패턴입니다.
만일 Model, View, Cotroller로 나누지 않고 하나의 클래스 또는 파일에 코드를 작성한다면 아래와 같이 굉장히 복잡한 파일이 탄생하게 됩니다.

위 사진은 JSP(Java Server Pages)입니다. 간단하게 설명하자면 HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구입니다. 즉, HTML안에 Model, Controller에서 하는 기능을 모두 다 작성한 것입니다.
이렇게 작성할 경우 문제점은 다음과 같은데요
최종적으로 개발생산성을 크게 저하시키게 됩니다. 이러한 문제점을 해결하기 위해 View, Model Controller별로 기능을 나누게 되었고 이게 MVC모델로 불리어지는 디자인 패턴입니다.
MVC모델을 사용하는 이유는 결국 유지보수용이성 때문이고 최종적으로 개발 생산성을 높이기 위함입니다.