Home /Sping/ MVC
Post
Cancel

/Sping/ MVC



MVC


  • ️모델(Model), 뷰(View), 컨트롤러(Controller)의 약자
  • 애플리케이션을 세 가지 역할로 구분한 개발 방법론(디자인턴)


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



1. Model


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


(예) 쇼핑리스트 앱에서의 Model의 역할
  : 리스트 항목이 포함해야 하는 데이터(품목, 가격, 등)와
   이미 존재하는 리스트 항목이 무엇인지를 지정



2. View


  • 뷰는 앱의 데이터를 보여주는 방식을 정의합니다.


(예) 쇼핑 리스트 앱에서의 View의 역할
  :뷰는 항목이 사용자에게 보여지는 방식을 정의하며,
  표시할 데이터를 모델로부터 받습니다.



3. Controller


  • 컨트롤러는 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함합니다.


(예) 쇼핑 리스트 앱에서의 View의 역할

  • 쇼핑 리스트는 항목을 추가하거나 제거할 수 있게 해주는 입력 폼과 버튼
    • 업데이트할 경우
      :모델이 업데이트되는 것이므로 입력이 컨트롤러에게 전송되고,
      모델을 적당하게 처리한다음, 업데이트된 데이터를 뷰로 전송합니다.
    • 단순한 업데이트를 할 경우
      (예를 들면, 항목을 알파벳순서로 정렬한다거나, 가격이 낮은 순서 또는 높은 순서로 정렬)
      :단순히 데이터를 다른 형태로 나타내기 위해 뷰를 업데이트할 경우에는
      컨트롤러는 모델을 업데이트할 필요 없이 바로 처리할 수 있다.



MVC 패턴의 과정


사용자가 #1Controller를 조작하면
➡️ Controller는 #2Model을 통해 데이터를 가져오고
➡️그 데이터를 바탕으로 #3View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 되는 패턴입니다.


MVC



MVC 패턴의 장점


  • Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성.유연성에 유리하다.
  • 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행 가능하게 해준다.



MVC 패턴의 단점


  • 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다.
    • MVC패턴에서 View는 Controller에 연결되어 화면을 구성하는 단위 요소이므로
      다수의 View를 가질 수 있습니다.
    • 그리고 Model은 Controller를 통해서 View와 연결되지만,
      Controller에 의해서 하나의 View에 연결될 수 있는 Model도 여러 개가 될 수 있어
      View와 Model이 서로 의존성을 띄게 됩니다.




(참고)



공부한 내용을 여러글과 책 읽은 내용을 바탕으로 정리하고 있습니다.
좋은 글로 저의 공부에 도움을 주시는 분들께 감사드립니다.

This post is licensed under CC BY 4.0 by the author.