웹 개발을 위한 데이터, 로직, 출력이 한 곳에 섞어 개발을 진행했었다. 이는 '시스템의 수정'에 대한 필요성보다, 많은 웹을 개발해야했던 시기였기에 문제는 없었다.
그러나, 데이터, 로직, 출력이 한 데 엮이면서 유지보수가 어려워진다는 치명적인 문제점을 해결하지 못했다.
이에, 화면, 로직, 데이터를 분리하자는 아이디어가 나오게 된다. 바로, MVC 패턴이다.
Model : 데이터와 관련된 부분
View : 클라이언트에게 보여지는 부분
Controller : Model과 View를 이어주는 부분
public class StudentModel {
private String name;
private int age;
public StudentModel(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
=> Model 내부에 Controller와 View에 관련된 코드가 있으면 안 된다.
즉, Model class에서 Controller class와 View class를 import 해서 사용하면 안된다는 것이다.
이는 모델이 데이터와 관련된 부분이기에, 깔끔하고 정제된 데이터를 꺼내 쓸 수 있게 Controller와 View 코드를 함께 사용하지 않고, 데이터와 관련된 코드를 모아 놓은 것으로 이해하면 된다.
View 내부에 Model의 코드만 있을 수 있고, Controller의 코드가 있으면 안된다.