- 홈페이지를 구성하는 요소들끼리 독립되어 효율적인 개발이 가능하다.
Model?
• 어플리케이션의 정보, 데이터를 나타내며, 즉, 초기화 된 상수나 값, 변수 (DB) 등을 의미
• 비즈니스 로직을 처리한 후 모델의 변경 사항을 컨트롤러와 뷰에 전달
• 앱이 포함해야할 데이터가 무엇인지를 정의
• 데이터를 처리하는 역할을 담당
• Controller에서 명령을 받고 Database에서 데이터를 저장하거나 삭제/업데이트/변환 등의 작업
을 수행!
• 모델은 3가지 규칙을 갖고 설계!
• 사용자가 편집하길 원하는 모든 데이터를 갖고 있어야 함!
• View나 Controller에 대해서 어떤 정보도 알지 말아야 함!
• 변경이 발생하면, 변경 통지에 대한 처리 방법을 구현해야 함!
View
• 사용자에게 보여지는 부분, 즉 유저 인터페이스(User interface)를 의미
• MVC 패턴은 여러 개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달
• 뷰는 받은 데이터를 화면에 표시해주는 역할을 가지고 있으며, 모델에게 전달받은 데이터
를 별도로 저장하지 않아야 함.
• 사용자가 화면에 표시된 내용을 변경하게 되면 모델에게 전달하여 모델을 변경해야 함.
• View는 3가지 규칙을 갖고 설계!
• 모델이 가지고 있는 정보를 따로 저장해서는 안됨
• 모델이나 컨트롤러와 같이 다른 구성 요소들을 몰라야 함.
• 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 함
Controller
• 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직
• 모델과 뷰 사이를 이어주는 브릿지(bridge) 역할을 수행
• 사용자가 접근하려는 URL에 따라 요청을 파악한 후, 그 요청에 맞는 Model을 의뢰하고,
데이터를 View에 반영하여 사용자에게 알려 줌.
• 예를 들어, 쇼핑 리스트는 항목을 추가하거나 제거할 수 있게 해주는 입력 폼과 버튼을 갖
고 있음. 이러한 액션들은 모델이 업데이트되는 것이므로, 입력이 컨트롤러에게 전송되고,
모델을 적당하게 처리한 다음, 업데이트된 데이터를 뷰로 전송하도록 함.
• 컨트롤러는 2가지 규칙을 갖고 설계!
• 모델이나 뷰에 대해서 알고 있어야 합니다.
• 모델이나 뷰의 변경을 모니터링 해야 합니다.