반응형
mvc패턴을 적용해보려고 공부한 내용을 최대한 쉽게 정리해보려고 함
MVC 패턴이란?
model, view, controller의 약자임
하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 3가지 역할로 구분한 것
각각에 대한 간단 설명
모델
- 애플리케이션의 정보인 데이터가 있음 - 백그라운드에서 동작하는 비즈니스 로직(데이터) 처리
컨트롤러
- 컨트롤러를 조작해서 model에 있는 데이터를 가져와 수정 - 사용자의 입력 처리와 흐름 제어, model과 view를 연결 시켜 주는 역할
뷰
- 컨트롤러가 가져온 데이터를 바탕으로 사용자에게 시각적으로 보여줌 - 정보를 화면으로 보여줌
좀 더 자세히 들어가자
각 파트마다 규칙이 있음
모델의 규칙
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야만 함
- 뷰나 컨트롤러에 대해서 어떠한 정보도 알지 말아야 함
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 함
뷰의 규칙
- 모델이 가지고 있는 정보를 따로 저장해서는 안됨
- 모델이나 컨트롤러와 같이 다른 구성 요소를 몰라야 함
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 함
컨트롤러의 규칙
- 모델이냐 뷰에 대해서 알고 있어야 함
- 모델이나 뷰의 변경을 모니터링해야 함
장점
1. 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행가능하게 함
2. Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성, 유연성에 유리함
3. 중복 코딩의 문제점 제거함
요약
Model은 무엇을 할지 정의. 비지니스 로직에서의 알고리즘, 데이터 등의 기능을 처리
Controller는 어떻게 할지를 정의. 요청을 받아서 화면과 Model과 View를 연결 시켜주는 역할을 함
View는 사용자 화면에 보여주는 역할.
수고.
반응형