상황에 따라 자주 쓰이는 설계 방법을 정리한 코딩 방법론

- Client가 웹사이트에 접속
- Controller는 Client가 요청한 웹페이지를 서비스하기 위해 Model 호출
- Model은 데이터 베이스, 파일 등의 데이터 소스를 제어한 후 그 결과를 return
- Controller는 Model이 return한 결과를 View에 반영
- 데이터가 반영된 View가 사용자에게 보여짐
View와 Model을 연결해 주는 부분
사용자의 요청 처리와 흐름 제어 담당
✔️ model, view에 대해 알고, 둘의 변경 상황을 모니터링해야 함
데이터를 처리하는 부분
데이터를 가진 객체
✔️ 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 함
✔️ view, controller에 대한 어떠한 정보도 알지 못함
✔️ 변경이 일어나면 변경 통지에 대한 처리 방법을 구현해야 함
사용자에게 보여지는 UI 관련된 사항을 처리하는 부분
✔️ model이 갖고 있는 정보를 따로 저장해서는 안 됨
✔️ model, controller에 대한 어떠한 정보로 알지 못함
✔️ 변경이 일어나면 변경 통지에 대한 처리 방법을 구현해야 함
✔️ 장점
(패턴을 구분해 개발하므로)
1. 유지보수가 용이하다.
2. 유연성/확장성이 크다.
3. 협업이 용이하다.
✔️ 단점
1. 완벽한 의존성 분리가 어렵다.
2. 설계 단계가 복잡하다. (설계에 시간이 오래 걸림)
3. 클래스(단위)가 많아진다.