MVC

똔또니·2023년 2월 18일

용어 정리

목록 보기
1/2

MVC 구조란?

모델-뷰-컨트롤러의 약자로, 디자인 패턴의 하나이다. 비즈니스 처리 로직과 사용자 인터페이스를 구분시켜 서로 영향없이 개발이 가능하다는 장점이 있다(MVC패턴).

MVC 소프트웨어 디자인 패턴의 세 가지 부분은 다음과 같이 설명할 수 있습니다.

  1. 모델: 데이터와 비즈니스 로직을 관리한다.
  2. 뷰: 레이아웃과 화면을 처리한다.
  3. 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅한다.

모델(Model)은 어플리케이션이 "무엇"을 할 지에 대한 정의한다. 처리되는 데이터, 데이터베이스, 내부 알고리즘 등 내부 비즈니스에 관한 로직의 처리를 수행한다. 즉 사용자에게 보이지 않는 로직.

데이터를 다룬다고 생각하면 편하다(DB)

뷰(View)는 말 그대로 사용자에게 보여지는 영역이다. JSP등 사용자 인터페이스를 담당한다.

컨트롤러(Controller)는 모델에게 "어떻게"할 것인지를 알려주며, 모델과 뷰 사이를 연결하는 역할을 한다. 사용자의 입출력을 받아 데이터를 처리한다.

예시

쇼핑 리스트 앱이 있다고 상상해보자.
우리가 원하는 것은 이번 주에 사야할 각 항목의 이름, 개수, 가격의 목록이다.

모델

앱이 포함해야할 데이터가 무엇인지! 정의한다. 데이터의 상태가 변경되면 모델을 일반적으로 뷰에게 알리며(따라서 필요한대로 화면을 변경할 수가 있음) 가끔 컨트롤러에 알리기도 한다.(업데이트된 뷰를 제거하기 위해 다른 로직이 필요한 경우).

다시 쇼핑 리스트 앱으로 돌아가서, 모델은 리스트 항목이 포함해야하는 데이터(품목,가격,등)와 이미 존재하는 리스트 항목이 무엇인지 지정한다.

앱의 데이터를 보여주는 방식. 한마디로 사용자가 보는 인터페이스.

컨트롤러

앱의 사용자로부터의 입력에 대한 응답으로 모델 또는 뷰를 업데이트하는 로직을 포함한다.
예를 들면, 쇼핑 리스트는 항목을 추가하거나 제거할 수 있게 해주는 입력 폼과 버튼을 갖는다.
이러한 액션들은 모델이 업데이트 되는 것이므로 입력이 컨트롤러에게 전송되고, 모델을 처리한다음 업데이트된 데이터를 뷰로 전송한다.

단순히 데이터를 필터 정렬하기 위해 뷰를 업데이트 하고싶다면 컨트롤러는 모델을 업데이트할 필요 없이 바로 처리할 수 있다.

refer : https://developer.mozilla.org/ko/docs/Glossary/MVC

profile
우당탕탕

0개의 댓글