MVC (Model View Controller)
- 소프트웨어가 돌아가는 방식에대한 하나의 패턴
- 특정 라이브러리를 지칭하는 것은 아니다, 어떤 서비스가 돌아가는 방식에 대한 아이디어, 디자인, 패턴
- 특징은 서비스가 돌아가기 위해서 여러과정과 처리들이 필요하다,
그런 처리들을 각 기능 별로 나눠서 프로그래밍을 할때 정돈된, 의도된 코드를 특정 역활에서 할 수 있다 (코드가독성, 코드관리성, 코드퀄리티에서 유리하다)
MVC를 사용하는 wab frameworks
- Ruby on Rails (Ruby)
- Laravel (PHP)
- Codeigniter (PHP)
- Django (python)
- Express (JS)
- Backbone (JS)
- Angular (JS)
- Flask (python)
1. Model
- 데이터의 정보를 가지고 있다, 자신이 데이터를 가지고 있던지, 데이터베이스와 연결이 되어서 데이터를 가져올 수 있다 (모델은 데이터베이스와 이야기를 한다)
- 데이터베이스에서 가지고온 데이터 또는 모델 자체에서 가지고있는 데이터를 가지고 컨트롤러와 이야기를 한다
- 모델이 뷰랑 이야기하는 경우는 거의 없다
2. View
- 유저가 보는 화면을 보여주는 역할 (HTML, CSS)
- 컨트롤러와만 이야기를 한다
- 뷰는 데이터를 받으면 그것을 그리는 역할
3. Controller
- 뷰에서 일어나는 엑션과 이벤트에 대한 input값을 받는다
- 받은 input값을 모델에 던저주기전에 일련의 가공과정을 거친다
- 가공과정을 거친 값을 모델에게 전달해준다
View(액션, 이벤트 인풋값) -> Controller(가공) -> Model (database) -> Controller(가공) -> View