MVC 패턴이란?
MVC 패턴 : Model - View - Controller 의 약자로, 개발할 때 3가지 형태로 역할을 나누어 개발하는 방법론
- 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
- 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고있으며, 이러한 관심사 분리는 더 나은 업무와 향상된 관리를 제공한다.
Model?
- 소프트웨어나 어플리케이션에서 정보 및 데이터 부분을 의미한다.
- Controller 에게 받은 데이터를 조작(가공)하는 역할을 수행한다.
- DB와 연동하여 사용자의 데이터를 다룸으로 무엇을 할 것인지 정의하는 부분
- 데이터 저장소와의 상호 작용, 데이터 처리 및 유효성 검사와 같은 작업을 수행함.
- 독립적으로 사용하며, 뷰와 컨트롤러와 직접적으로 통신하지 X
Model 이 가지는 규칙
1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다.
View?
- input텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다.
- 데이터 및 객체의 입력과 출력을 담당, 사용자에게 시각적으로 나타내는 화면이다.
View 가 이 가지는 규칙
1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다.
Controller?
- 사용자가 데이터를 클릭하고 수정하는 것에 대한 "이벤트" 들을 처리하는 부분을 뜻한다.
Controller 가 이 가지는 규칙
1. 모델이나 뷰에 대해서 알고 있어야 한다.
2. 모델이나 뷰의 변경을 모니터링 해야 한다.
MVC 패턴의 장단점?
장점 : 비교적 간단한 패턴으로 구조파악과 확장을 쉽게 할 수 있다.
단점 : 뷰와 모델의 완벽한 분리가 어렵고, 앱이 커지면 컨트롤러의 코드량이 커져 유지보수가 힘들다.