model-view-controller, MVC
소프트웨어 디자인 패턴 중 하나. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
✅ view
✅ controller
✅ model
➡ 게시판에 읽히고 쓰이고 수정되는 글들은 데이터베이스에 데이터로 저장되는데, 이 데이터의 형식을 지정하고 저장하고 불러오는 작업들에 대한 코드들이 model 파트에서 이루어짐
➡ 이걸 사용자들이 목록과 글, 입력화면 등으로 시각적으로 볼 수 있게 해주는 html, css 등의 요소가 view 파트에서 이루어짐
➡ model의 데이터를 view에 연결해서 사용자가 GUI 화면을 통해 데이터를 읽고 쓰고 지울 수 있도록 전반적 제어를 하는 파트가 controller임.
사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 된다. 공장에서도 하나의 역할들만 담당해서 처리하면 더 효율적이게 되는 것과 마찬가지.
서로 분리되어 각자의 역할에 집중할 수 있게끔 한다면
유지보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복코딩이라는 문제점도 사라진다.
*유연성: 여기서 유연성은 클라이언트의 새로운 요구사항에 대해 최소한의 비용으로 보다 유연하게 대처할 수 있는 것을 말한다.
✔ MVC 패턴을 사용하는 프레임워크나 라이브러리
구글의 AngularJS, php의 코드이그나이터
python의 django, facebook의 react