
지난 번에 작성한 생성, 구조, 행동으로 분류한 기초 디자인 패턴 정리 글입니다.
https://velog.io/@wha1eson/CS-소프트웨어-디자인-패턴-기본
**
MVC** (모델-뷰-컨트롤러)는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의비즈니스 로직과화면을 구분하는데 중점을 두고 있습니다. 이러한 "관심사 분리" 는 더나은 업무의 분리와 향상된 관리를 제공합니다. 출처 : https://developer.mozilla.org/ko/docs/Glossary/MVC
MVC 패턴이 생겨나게 된 가장 근본적인 이유는 결국 유지보수의 용이성이다. 초기 프로그래머들의 개발 과정에서 더욱 편리하고 유용하게 사용할 수 있는 패턴을 분석하다보니, Model, View, Controller(후술 예정)의 구조를 가진 패턴이 편리하게 사용된다는 것을 알게 되었고, 이를 논문으로 정리하여 발표한 것이 현재 우리가 확인하고 있는 MVC … 등의 디자인 패턴이라는 것이다.

MVC 패턴은 애플리케이션의 구성 요소를 모델, 뷰, 컨트롤러 형태로 나누어 각 구성 요소에 집중하여 개발할 수 있도록 만든 디자인 패턴이다. 해당 디자인 패턴에서 가장 주목할만한 키워드는 관심사 분리로 각 역할 별로 나누어 구성한다는 것이 핵심이라고 볼 수 있다.
MVC 패턴은 의식적으로 사용하지 않더라도 상당히 친숙한 형태라고 볼 수 있는데, 웹 초창기부터 사용되었으며, 사용자의 화면과 컨트롤러, 데이터를 관리하는 모델로 나누어 관리한다. MVC의 장점으로는 재사용성과 확장성이 용이하다는 점이 있다. 반면, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지며 컨트롤러의 역할이 커져, 의존성이 커진다는 단점을 가진다.