개발자들이 오랜기간 개발하면서 특정 기능이나 형태를 가진 소프트웨어는 어떤 식으로 개발하는것이 좋은지 구체화해 놓았는데 소트트웨어 공학적으로 이를 '디자인패턴'이라고 합니다.
디자인 패턴의 종류에는 싱글톤 패턴, 팩토리 패턴, MVC패턴 등이 있습니다.
위의 그림처럼 로직을 나누면 유저에게 보이는 화면단과 내부적으로 실행되는 비지니스 로직이 서로에게 영향이 없고, 차후의 시스템을 개발 및 유지 보수를 쉽게 해준다는 장점이 있습니다.
Model의 역할은 애플리케이션의 데이터와 이 데이터를 처리하는 로직을 가지고 있습니다.
Controller는 Model과 View의 중간 다리 역할을 하며,
View가 유저의 요청을 Controller에게 전달하면, 요청에 필요한 데이터를 Model에서 가져와 처리하고 View에 이를 전달합니다.
즉, Controller의 역할은 내부 로직을 처리하는 것입니다.
View는 화면에서 보여지는 모든 요소들(html, css, javascript)을 가지고 있고, 유저의 요청으로 화면단에 변화가 발생하면 이를 Controller에 알려줍니다.