✅ MVC 패턴의 등장
초창기에는 MVC 모델이 아닌 한 파일 안에 모든 코드를 넣었다.
그러다 보니, 유지보수에 불편함이 생겼고 MVC 패턴이 등장하게 되었다.
유지보수가 편한 코드? :
특정 기능을 추가하거나 수정할 때 가능한 한 최소한의 코드만을 수정해서 기능을 변경할 수 있음을 의미한다.
- 변하는 것과 변하지 않는 것을 분리
- 가독성이 좋아야 함
✅ MVC (Model-View-Controller) 패턴이란?
MVC(Model-View-Controller) 패턴:
소프트웨어 설계 패턴 중 하나로, 애플리케이션을 세 가지 주요 구성 요소로 분리하여 개발과 유지 보수를 용이하게 한다. 이 패턴은 특히 대규모 애플리케이션에서 코드의 재사용성과 확장성을 높이는 데 유용하다.
MVC 패턴은 코드 간의 종속성을 줄이고 구성 요소 간의 역할을 명확하게 함으로써 코드 분리가 쉽고 협업을 용이하게 하는 장점을 가지고 있다.
MVC 패턴의 개념에 대해 간략하게 알아보자.
◇ 세 가지 주요 구성
MVC 패턴은 크게 위의 세 가지 구성요소로 이루어져 있다.
1. Model
2. View
3. Controller
그리고 위의 그림처럼 MVC 패턴은 세 가지 구성요소가 상호작용을 한다.
🚩 user는 controller로 데이터를 전달하고,
🚩 controller는 model과 통신하며 비즈니스 로직을 처리하며,
🚩 model은 다시 controller에게 정보를 전달하고,
🚩 controller는 view에게 처리된 로직의 결과를 전달하며,
🚩 최종적으로 view는 다시 user에게 결과를 보여준다.
이러한 큰 틀에서 움직이는 흐름이 바로 MVC 패턴이다.
각각의 특징들에 대해서 더 자세하게 살펴보겠다.
1. Model
모델은 애플리케이션의 핵심 데이터와 비즈니스 로직을 나타낸다.
- 모델은 독립적으로 작동하며 뷰와 컨트롤러와 직접적으로 통신하지 않는다.
- 데이터 저장소와 상호작용한다.
- 데이터 처리 및 유효성 검사와 같은 작업을 수행한다.
2. View
뷰는 사용자에게 보여지는 애플리케이션 UI 부분이다.
- 모델에서 데이터를 받아 사용자에게 표시한다.
- 입력을 컨트롤러에 전달한다.
3. Controller
컨트롤러는 사용자 입력을 처리하고, 애플리케이션의 전체적인 흐름을 관리한다.
- 뷰에서 전달된 사용자의 입력을 분석하고, 적절한 모델 기능으 호출하여 데이터를 조작하거나 업데이트 한다.
- 결과를 다시 뷰에게 전달하여 화면을 표시하도록 한다.
✅ MVC 패턴의 설계 원칙
MVC 패턴 설계시에 지켜야 할 사항을 아래와 같다.
☑️ Model은 Controller와 View에 의존하지 않아야 한다.
Model 내부에는 Controller와 View에 관련된 코드가 있어서는 안된다.
>> 즉 Model 내부 코드에서는 Controller와 View가 import 되어서는 안된다
☑️ View는 Model에만 의존해야 하고, Controller에는 의존하면 안된다.
View 내부에는 Model의 코드만 있을 수 있고, Controller의 코드는 있어서는 안된다.
☑️ View가 Model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받는다.
View는 사용자한테 보이는 UI와 Model로부터 받은 데이터가 합쳐져서 만들어진다.
모든 사용자에게 똑같이 보여야 하는 부분은 View가 자체적으로 데이터를 가지고 있어야 한다.
(Model로부터 데이터를 받으면 안된다.)
☑️ Controller는 Model과 View에 의존해도 된다.
Controller 내부에는 Model과 View의 코드가 있을 수 있다.
☑️ View가 Model로부터 데이터를 받을 때는 반드시 Controller에서 받아야 한다.
Controller 코드 내에서만 View가 Model로부터 데이터를 받을 수 있다.