모델-뷰-컨트롤러(model–view–controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
출처 : 위키피디아 (ko.wikipedia.org/wiki/모델-뷰-컨트롤러)
MVC패턴은 모델, 뷰, 컨트롤러 3개의 컴포넌트로 구성되어있는 형태를 말한다. 이 패턴을 사용하면 인터페이스와 비지니스 로직을 분리하여 관리가 가능한 장점이 있다.
Model
- Data와 애플리케이션의 정보 가공 등의 비지니스 로직을 처리하기 위한 역할을 담당
- 데이터 저장, 추출, 삭제 등의 데이터 관련 역할을 수행
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야함
- 뷰나 컨트롤러에 대해 어떠한 정보도 알지 못하여야 함
- 변경이 일어날 경우 변경에 대하여 어떻게 알려 줄지 처리 방법을 구현해야 함
View
- 사용자에게 보여주는 화면
- 컨트롤러로부터 전달받은 모델의 데이터를 화면에 표기만 해주어야하고 따로 저장하면 안된다.
- 사용자가 화면에 표기한 내용을 변경하면 컨트롤러에 보내 모델이 변경 할 수 있게 한다.
Controller
- 모델과 뷰를 연결하는 인터페이스 담당
- 모델이 데이터를 어떻게 처리할지 알려주는 역할
- 모델과 뷰에 대해 알고 있어야함