사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
관심사 분리 : 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 둠
MVC 기반의 다른 디자인 패턴
ㄱ. MVVM(Model - View - View Model)
ㄴ. MVP(Model - View - Presenter)
ㄷ. MVW(Model - View - Whatever)
각 부분별 기능
ㄱ. Model
: 데이터와 비즈니스 로직을 관리
ㄴ. View
: 레이아웃과 화면을 처리
ㄷ. Controller
: 명령을 Model
과 View
부분으로 라우팅(Routing) 함
Model
및 View
를 업데이트하는 로직을 포함Model
과 View
를 모두 업데이트 해야 하거나 (쇼핑 리스트에 항목을 추가할 경우)View
만 업데이트 할 경우 (쇼핑 리스트를 단순히 정렬만 할 경우) 등이 존재MVC 모델이 아니더라도 이미 웹에서는 비슷한 형태로 서비스를 무의식적으로 구현하고 있을 것
ㄱ. 데이터 모델은 특정 종류의 DB에 저장됨 (서버 사이드, 클라이언트 사이드) = Model
ㄴ. 앱의 제어 코드는 HTML
,Javascript
로 작성되었을 것 = Controller
ㄷ. 앱의 사용자 인터페이스는 HTML/CSS
로 작성되었을 것 = View
다만 MVC는 이러한 컴포넌트들을 더 엄격하게 관리하는 패턴이라고 할 수 있음
https://developer.mozilla.org/ko/docs/Glossary/MVC
https://velog.io/@josworks27/MVC-%EB%AA%A8%EB%8D%B8-%EA%B0%9C%EB%85%90