MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습니다.
① 사용자가 웹사이트에 접속 (Users)
② Controller는 사용자가 요청한 웹페이지를 서비스하기 위해서 모델을 호출 (Manipulates)
③ Model은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후 그 결과를 Return
④ Controller는 Model이 리턴한 결과를 View에 반영 (Updates)
⑤ 데이터가 반영된 View는 사용자에게 보여짐 (Sees)
애플리케이션의 정보, 데이터의 가공을 책임지며 DB와 상호작용하며 비즈니스 로직을 처리하는 모듈, 컴포넌트를 말합니다.
모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보합니다. 이와 같은 통보를 통해 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있습니다.
레이아웃과 화면을 처리합니다. 사용자에게 보여지는 방식을 정의하며, 표시할 데이터를 모델로부터 받습니다.
사용자가 접근한 URL에 따라 사용자의 요청사항을 파악한 후에 그 요청에 맞는 데이터를 Model을 의뢰하고, 데이터를 View에 반영해서 사용자에게 알려줍니다.