본 글은 우아한 테크코스 프리코스 3주 차 미션 중 공부한 내용을 기록한 것이다.
-> 우아한 테크코스 프리코스 3주차 미션 java-lotto
-> 필자가 제출한 코드
-> 3주차 미션 회고
Model - View - Controller 의 약자로, 애플리케이션을 3가지 역할로 구분한 개발 방법론이다.
Model, View, Controller의 컴포넌트들은 각자의 고유한 역할이 정해져 있다.
유지보수에 매우 유용한 디자인 패턴이다.
보통 다음과 같이 동작한다.
-> 즉, User <-> View <-> Controller <-> Model 의 관계를 갖는다.
본 방식을 통해 Model과 View가 다른 컴포넌트들에 종속되지 않아 변경에 유리하다.
MVC 패턴을 잘 지켰는지 확인해 볼 수 있는 5가지가 있다.
아래 5가지를 하나씩 프로젝트에 대입해 보며 잘 지켜졌는지 확인해 보자!
- Model은 Controller와 View에 의존하지 않아야 한다.
- Model 내부에 Controller, View와 관련된 코드가 있으면 안된다.
- View는 Model에만 의존해야 하고, Controller에는 의존하면 안된다.
- View 내부에는 Model의 코드만 있을 수 있고, Controller의 코드가 있으면 안된다.
- Model의 내용을 출력하기 위해서는 Model 관련 코드는 있을 수 밖에 없다.
- 하지만 Controller 관련 코드는 있으면 안된다.
- View가 Model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.
- 모든 사용자가 공통적으로 보는 내용(UI)에 대해서는 View가 자체적으로 갖고 있어야 한다.
- 사용자마다 다르게 보여줘야 하는 데이터(사용자 정보, 구매 내역 등)만 Model로부터 가져와야 한다.
- Controller는 Model과 View에 의존해도 된다.
- Controller 내부에는 Model과 View의 코드가 있어도 된다.
- View가 Model로부터 데이터를 받을 때, 반드시 Controller로부터 받아야 한다.