지난 번에 작성한 생성, 구조, 행동으로 분류한 기초 디자인 패턴 정리 글입니다.
https://velog.io/@wha1eson/CS-소프트웨어-디자인-패턴-기본
**
MVC** (모델-뷰-컨트롤러)
는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의비즈니스 로직
과화면을 구분
하는데 중점을 두고 있습니다. 이러한 "관심사 분리
" 는 더나은 업무의 분리와 향상된 관리를 제공합니다. 출처 : https://developer.mozilla.org/ko/docs/Glossary/MVC
MVC 패턴이 생겨나게 된 가장 근본적인 이유는 결국 유지보수의 용이성
이다. 초기 프로그래머들의 개발 과정에서 더욱 편리하고 유용하게 사용할 수 있는 패턴을 분석하다보니, Model
, View
, Controller
(후술 예정)의 구조를 가진 패턴이 편리하게 사용된다는 것을 알게 되었고, 이를 논문으로 정리하여 발표한 것이 현재 우리가 확인하고 있는 MVC …
등의 디자인 패턴이라는 것이다.
MVC 패턴
은 애플리케이션의 구성 요소를 모델
, 뷰
, 컨트롤러
형태로 나누어 각 구성 요소에 집중하여 개발할 수 있도록 만든 디자인 패턴이다. 해당 디자인 패턴에서 가장 주목할만한 키워드는 관심사 분리
로 각 역할 별로 나누어 구성한다는 것이 핵심이라고 볼 수 있다.
MVC 패턴은 의식적으로 사용하지 않더라도 상당히 친숙한 형태라고 볼 수 있는데, 웹 초창기부터 사용되었으며, 사용자의 화면과 컨트롤러, 데이터를 관리하는 모델로 나누어 관리한다. MVC의 장점으로는 재사용성
과 확장성
이 용이하다는 점이 있다. 반면, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지며 컨트롤러의 역할이 커져, 의존성이 커진다는 단점을 가진다.