728x90
MVC(Model-View-Controller)
- 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
- 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니 로직을 서로 영향 없이 쉽게 수정할 수 있는 애플리케이션 개발에 사용
Controller
- 명령을 Model과 View 부분으로 *라우팅
- 데이터와 비즈니스 로직 사이의 상호 동작 관리
- 애플리케이션의 사용자로부터의 입력에 대한 응답으로 Model 또는 View를 업데이트하는 로직 포함
예를 들어보면, 쇼핑 리스트는 항목을 추가하거나 제거할 수 있게 해주는 입력 폼과 버튼을 갖습니다. 이러한 액션들은 모델이 업데이트되는 것이므로 입력이 컨트롤러에게 전송되고, 모델을 적당하게 처리한다음, 업데이트된 데이터를 뷰로 전송합니다.
출처 : https://developer.mozilla.org/ko/docs/Glossary/MVC
- Model에 명령을 보냄으로써 모델 상태 변경
- 관련된 View에 명령을 보냄으로써 Model의 표시 방법 수정 가능
- Model의 mutator 함수를 호출하여 상태 변경
- Controller의 명령으로 모델의 상태가 바뀌면, Model은 등록된 View에 자신의 상태가 바뀌었다는 것을 알리고, View는 거기에 맞게 사용자에게 Model의 상태를 보여줌
*라우팅(Routing) : 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정
Model
- 데이터와 비즈니스 로직 관리
- 동작을 수행하는 코드
- 애플리케이션이 포함해야 할 데이터 정의
- 표시 형식에 의존하지 않음, 사용자에게 어떻게 보일지 신경쓰지 않아도 됨!
- 순수하게 public 함수로만 이루어져 있음
- 몇몇 함수들은 사용자 질의(query)에 대해 상태 정보를 제공, 나머지 함수들은 상태를 수정
- Model의 상태 변화(데이터 변경)가 있을 때 Controller와 View에 이를 통보
- 이를 통해 View는 최신의 결과를 보여줄 수 있고, Controller는 Model의 변화에 따른 적용 가능한 명령을 추가/제거/수정
- 어떤 MVC 구현에서는 Model의 통보 대신 View나 Controller가 직접 Model의 상태를 읽어오기도 함!
- 이를 통해 View는 최신의 결과를 보여줄 수 있고, Controller는 Model의 변화에 따른 적용 가능한 명령을 추가/제거/수정
- Model은 여러 개의 View를 가질 수 있음
View
- 레이아웃과 화면 처리
- 데이터를 보여주는 방식 정의
- UI를 생성하기 위해 Model로부터 정보를 얻음
- Model에게 질의하고, Model로부터 값을 가져와 사용자에게 보여줌
- View는 여러 개의 Controller를 가질 수 있음
728x90
반응형