카테고리 없음

MVC pattern이 뭔가요?

PSummer._. 2023. 5. 18. 05:08

Model: 주고 받을 수 있는 객체(데이터에 관련된 일을 한다)

             - 데이터의 형식을 저장하고, 데이터를 조작하고 처리한다.

             - 예를 들면, 사용자의 정보, 상품 목록, 주문 내역 등이 있을 수 있다.

View: 출력하는 부분

             - 데이터를 시각적으로 보여주는 역할을 한다.

Controller: 제어, 처리하는 부분

             - user의 request를 처리하고, 그 request에 따라서, Model의 상태나, View를 업데이트 한다

             - 예를 들어, 사용자가 웹 페이지에서 버튼을 클릭하면,

                Controller가 그 정보를 받아서, 모델을 업데이트 하고, 그에 따라서 View를 변경한다.

-> 이렇게 세 파트로 분리해서, application의 유지보수(코드를 쉽게 관리하고 개발함), 확장성을 향상시키는데 도움이 된다.

 

사용자가 request를 보내면 Controller가 처리를 한다.

request에 따라, 필요한 데이터를 Model에서 얻는다.

Model은 데이터를 조작(모두 불러오거나, 삭제, 변경, 추가 등)한 후, 다시 Controller한테 보낸다.

(Controller는 어떻게 데이터가 조작되는지 전혀 모른다.)

Controller가 View를 업데이트하도록 지시한다.

 

여기서 중요한 점은 Model과 View는 직접적으로 상호작용을 하지 않는다는 것이다. 중간에 Controller가 있다.

이렇게 함으로써, Model과 View를 분리해서, 상호 의존성을 줄인다. -> 유지보수와 확장에 유리하다.

 

예를 들면, 

사용자가 주문한 내역을 보여달라고 한다.

그러면, Controller가 Model한테 주문 내역에 대한 Data를 요청한다.

그럼, Model이 SELECT * FROM orders;를 해서, Controller한테 데이터를 보내준다.

그럼 Controller는 만약 이게 성공적으로 잘 받아졌으면, View한테 업데이트를 요청한다.