MVC 패턴

최민수·2023년 3월 22일
0

[개발] Java Spring

목록 보기
10/18

Spring 개발을 하다보면 MVC 패턴에 대해서 한 번은 반드시 들어봤을 거라고 생각한다. 개발을 하면서 어떻게 하면 코드를 깔끔하고 정리를 잘하면서 짤까 하는 고민이 생기는 것은 자연스러운 현상이다.

MVC 패턴은 이런 생각 끝에 오, 이렇게 하니까 유지보수성이 좋은 코드를 짤 수 있더라 라는 결론에 다다른 개념이라고 할 수 있다.


Model, View, Controller

위 그림은 MVC 패턴을 구성하는 Model, View, Controller 의 관계에 대한 그림이다.

짧게 각각의 기능에 대해서 정리하자면,

Model: 데이터와 관련된 부분
View: 사용자에게 보여지는(화면) 부분
Controller: Model과 View를 연결, 제어해주는 부분

이라고 할 수 있다. 이 정도의 개념은 MVC 패턴이 무엇인가 에 대해서 한 번이라도 공부해 본 사람은 쉽게 알 수 있는 내용이다.

그러나 실제로 MVC 패턴을 지키면서 코딩을 하는 것은 쉽지 않다. 나도 모르는 사이 패턴을 지키지 않으면서 코딩을 하고 있는 나 자신을 발견할 수 있다.

그러면, 어떻게 해야 실제로 MVC 패턴을 잘 지킨 코드를 짠다고 할 수 있을까?


MVC를 지키면서 코딩하는 방법

  1. ModelView와 Controller의존해서는 안된다.
    즉, 아래 코드와 같이 Model 객체에 Controller와 View에 관한 코드가 있으면 안된다. (import 금지)
public class Student {
	private String name;
    private int age;
    
    public Student(String name, int age){
    	this.name = name;
        this.age = age;
    }
}
  1. ViewModel에만 의존해야 되고 Controller에는 의존해서는 안된다.
    즉, View 코드에서는 Model 객체를 불러와도 되지만 Controller를 참조하는 코드가 있으면 안된다.

  2. View가 Model로부터 데이터를 받아올 때는, 사용자마다 다르게 보여주어야 하는 데이터만 받아와야 한다.
    즉, 사용자 모두에게 공통적으로 적용될 수 있는 리소스가 있고 사용자마다 다른 정보를 보여줘야 하는 리소스가 있을 것이다.
    여기서 View는 사용자마다 다르게 보여줘야 할 데이터만을 받아야 한다.

  3. ControllerView와 Model에 모두 의존해도 된다.
    즉, Controller는 둘을 연결시키고 제어하는 역할을 해야 하기 때문에 허용한다.

  4. View가 Model로부터 데이터를 받아올 떄, 값을 넘겨주는 역할은 Controller 여야 한다.
    즉, Controller가 받아온 데이터를 View로 넘겨주는 역할을 침범해서는 안된다.


영상 출처:
[10분 테코톡] 🧀 제리의 MVC 패턴
https://www.youtube.com/watch?v=ogaXW6KPc8I

profile
CS, 개발 공부기록 🌱

0개의 댓글