Rails는 MVC패턴을 통해 프로그램을 구성한다.
프레임워크들은 주로 MVC(Model-View-Controller) 또는 MVVM(Model-View-View-Model) 아키텍쳐를 사용한다.
모델
은 에플리케이션에서 사용하는 데이터를 관리하는 영역뷰
는 사용자에게 보이는 부분컨트롤러
는 사용자의 입력이나 조작에 따라 모델 데이터를 조회, 수정하고 변경사항을 뷰에 반영하는 역할프론트엔드에서 사용했던 React
는 컴포넌트
단위로 프로젝트를 관리하며 View
만 신경쓰는 자바스크립트 라이브러리였다. View
만 다루기 때문에 어떤 데이터가 변할 때 마다 어떤 변화를 줄지 고민하는 것이 아니라, 가상 DOM을 이용해 기존 뷰를 날려버리고 처음부터 새로 리렌더링하는 방식을 취한다.
(프론트엔드 프레임워크/라이브러리 3대장 중 나머지 Vue
와 Angular
는 MVC
프레임워크를 채택하고 있다. (정확히 말하자면, Angular2
는 MVC
고, AngularJS
는 MVW
이다)
Model
과 View
가 서로 분리되어 직접 관여할 수 없으므로, UI와 비즈니스 로직을 분리하여, 각각의 요소를 수정할 때 서로 영향을 끼치지 않는다는 장점을 가지고 있다.Model
Model
은 DB 테이블과 상호작용하는 규칙들을 관리한다. Model
을 통해 DB에 접근하여 CRUD를 실행할 수 있다.Model
에서 만들어진다. View
Model
이 가진 정보를 저장할 수는 없지만, Controller
를 통해 Model
의 정보를 받아 사용자에게 전달함Controller
Model
과 View
를 연결해줌.View
에서 사용자가 보낸 요청을 처리하고, 비즈니스 로직이 필요할 때 Model
에서 호출함
장고에서만 보던 MVC를 선아님이 하신걸 보다니.. 화이팅입니다.