MVC?
- model, view, controller 세 부분으로 나누는 구조
model: 데이터, 비지니스 로직 관리
view: 레이아웃과 화면 처리
controller: 명령을 모델과 뷰로 라우팅
*라우팅: 네트워크에서 경로를 선택하는 프로세스, 라우팅은 미리 정해진 규칙에 따라 최상의 경로 선택함
예시) 쇼핑리스트
모델(model)
- 앱이 포함해야할 데이터 정의함. 데이터 변경 시 모델을 일반적으로 뷰에게 알리고(필요한대로 화면변경 가능(무슨 말이지?)) 가끔 컨트롤러에게 알리기도 함(업데이트 된 뷰를 제거하기 위해 다른 로직 필요한 경우).
=> 모델은 쇼핑리스트에 포함되어야 할 품목, 가격(데이터) 등을 지정
뷰(view)
- 앱의 데이터를 보여주는 방식 정의함
=> 표시할 쇼핑리스트의 품목 이름, 가격(데이터) 등을 model로 부터 받아와 사용자에게 보여지는 방식 정함
컨트롤러(controller)
- 앱의 사용자가 입력을 하면 그 응답으로 모델, 뷰를 업데이트하는 로직 포함함
=> 쇼핑리스트의 항목을 편집할 수 있는 입력 형식 제공함
->이는 모델이 업데이트 되는 과정임
(입력을 컨트롤러에 전송 -> 모델을 처리 -> 업데이트된 데이터를 뷰로 전송)