MVC 패턴이란 애플리케이션을 구성할 때, 모델(model), 뷰(view), 컨트롤러(controller) 세 가지 역할로 구분한 패턴을 말합니다.
모델(model): 백그라운드 로직, 데이터 조작 담당
뷰(view): 사용자가 볼 수 있는 화면, 최종적인 출력을 담당
컨트롤러(controller): 요청 데이터 처리, 흐름 제어 (전체적인 관리)
쉽게 말해 하나의 애플리케이션을 만들 때, 데이터(model), 사용자 인터페이스(view), 데이터 처리 로직(controller)를 구분해 한 요소가 다른 요소들에게 영향을 주지 않도록 설계하는 방식입니다.
MVC 패턴의 전형적인 흐름은 아래와 같습니다.
- 클라이언트가 컨트롤러에 (데이터) 요청을 함
- 컨트롤러가 모델에서 요청하는 데이터를 가져옴
- 가져온 데이터를 뷰에 전달함
- 뷰에서 요청한 데이터를 보여줌
대표적인 예로 자바(java), 파이썬(python), 루비(ruby), PHP 프레임워크는 기본적으로 MVC 패턴을 따라 개발합니다.
MVC 패턴은 각각의 구성요소가 구분되어 있으므로 한 구성요소 로직의 수정이 다른 요소에 영향을 미치지 않습니다. 따라서, MVC 패턴은 아래와 같은 장점을 가지고 있습니다.
*참고: 퍼펙트 루비 온 레일즈