
MVC ?
- 소프트웨어의 디자인 패턴 중 하나
- 도입 시에 사용자 인터페이스로부터 비즈니스 로직을 분리 -> 서로 영향을 주지 않고 유지보수 가능
Model
- 데이터를 가진 객체
- 내부 비지니스 로직을 처리하기 위한 역할
- 사용자가 입력한 데이터나 출력할 데이터를 다룸
View
- html / css / js 들을 모와둔 컨테이너
- 사용자에게 화면을 보여줌
Controller
- Model 과 View 사이에 있는 컴포넌트
- Model 이 데이터를 어떻게 처리할지 알려주는 역할
- 사용자의 요청에 대해 Model 과 View 를 결정하여 전달
MVC 의 한계
MVC 에서 View 는 Controller 에 연결되어 화면을 구성하는 요소이므로 다수의 View 를 가질 수 있다. Model 은 Controller 를 통해서 View 완 연결되지만, 하나의 View 에 Model 이 여러개가 될 수 있다.
여러개가 되면???
View 와 Model 이 서로 복잡하게 연결되어 있는 상황이 발생할 수 있다.
그럼에도 MVC 패턴을 사용하는 이유
- 비즈니스 로직과 UI 로직을 분리하여 유지보수를 독립적으로 수행
- Model 과 View 가 다른 컴포넌트들에 종속되지 않아 확장성, 유연성에 있어 유리
- 중복 코딩의 문제점 제거
MVC 패턴 요약
Model - 백에서 동작하는 비즈니스 로직처리
View - 정보를 화면으로 보여주는 역할
Controller - 사용자의 입력 처리와 흐름 제어 담당, 화면-Model-View 를 연결하는 역할
'dev > 🧩 디자인패턴' 카테고리의 다른 글
팩토리 패턴이란? (Factory Pattern) (0) | 2022.11.08 |
---|---|
싱글턴 패턴 - 동시성 문제 해결 (0) | 2022.10.25 |
싱글턴 패턴이란? (Singleton Pattern) (0) | 2022.10.25 |
전략 패턴이란? (Strategy Pattern) (2) | 2022.10.07 |
MVC1 과 MVC2 차이 그리고 Spring MVC 란? (0) | 2022.05.27 |