MVC 패턴

쌍제이(JJVoiture)·2022년 9월 2일
0

Model-View-Controller로 애플리케이션의 역할을 구분한 개발 방법론.
유저가 controller를 조작하면 controller는 model을 통해 데이터를 가져오고, 그 데이터를 바탕으로 view를 통해 시각적 표현을 제어하여 사용자에게 전달한다.

Model

데이터를 가진 객체.
데이터는 내부 상태에 대한 정보나 모델을 표현하는 이름 속성으로 가질 수 있다.
model의 상태 변화가 있을 때 controller와 view에 이를 통보한다.

규칙

  • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  • 뷰나 컨트롤러에 대해서 어떠한 정보도 알지 말아야 한다.
  • 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 한다.

View

View는 input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 가지고 있는 컨테이너입니다. 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어온다.
결과물을 생성하기 위해 model로부터 정보를 불러온다.

규칙

  • 모델이 가지고 있는 정보를 따로 저장해서는 안 된다.
  • 모델이나 컨트롤러와 같이 다른 구성 요소를 몰라야 한다.
  • 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 한다.

Controller

유저가 접근한 url에 따라 유저의 요청사항을 파악한 후, 그에 맞는 model을 요청하고, 데이터를 view에 반영해서 사용자에게 알려준다.
즉, event를 처리하는 부분이다.

model에 명령을 보내서 view의 상태를 변경할 수 있다.
controller가 관련된 model에 명령을 보내서 view의 표시 방법을 바꿀 수 있다.

규칙

  • model이나 view에 대해 알고 있어야 한다.
  • model이나 view의 변경을 모니터링해야 한다.

왜 사용하는가?

1번에 비하면 2번이 유지보수가 더 편리하고 코드의 중복도 적어진다.

profile
안녕하세요. 중구난방 개발자 쌍제이입니다.

0개의 댓글