1. MVC패턴이란?
Model + View + Controller를 합친 용어이다.
- Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분
- View : 사용자에서 보여지는 UI 부분
- Controller : 사용자의 입력을 받고 처리하는 부분
2. MVC패턴의 흐름
- 클라이언트가 입력하여 요청 (ex. 저장버튼 클릭)
- 서버에 데이터를 요청, Controller에 요청한다.
- Controller에서 사용자에게 받은 데이터를 처리하기 위해 로직을 수행한다. Controller는 필요한 데이터들을 Model과 주고 받음
- Controller는 View에게 결과를 전달한다. 사용자에게 화면 결과를 보여줌
3. MVC패턴 코드
//Controller 모델을 통해 데이터를 받아 View로 보낸다
Class Users{
function getProfile(id) {
profile = this.UserModel.getProfile(id)
renderView('user/profile', profile);
}
}
//Model 데이터를 가져온다
Class UserModel{
function getProfile(id){
data = this.db.get('select * from users where id = id')
return data;
}
}
//View 받은 데이터를 사용자에게 보여준다.
<h1>{{profile.name}}</h1>
<ul>
<li>Email: {{profile.email}}</li>
<li>Phone: {{profile.Phone}}</li>
</ul>
4. MVC패턴의 장단점
장점
- 단순하고 직관적
- 기능 별로 코드를 분리하여 유연하고 확장하기 쉽다.
단점
- 위 패턴을 사용하기 위한 클래스, 기능들이 많이 필요하다. 복잡한 설계가 될 수 있음
- Model과 View의 완벽한 분리가 어렵다. => Model과 View의 의존성이 높아 패턴이 모호해짐.
- 의존성이 높다면, 각각 독립적이지 않아 코드 하나를 수정하려면 여러 부분을 수정해야한다는 큰 단점이 있다.
++ Spring MVC 모델 흐름
'Design Pattern' 카테고리의 다른 글
[Design Pattern] 템플릿 메소드 패턴 (0) | 2023.03.05 |
---|---|
[Design Pttern] 데코레이터 패턴 (2) | 2023.02.05 |
[Design Patter] 상태패턴 (0) | 2023.01.07 |
[Design Pattern] 싱글톤 패턴 (0) | 2022.12.17 |