00-02. MVC에 대해 알아보자

강채희·2021년 7월 22일
0
post-thumbnail

개발에 시작하기 앞서 MVC에 대해 간단히 알아보려 한다.
스프링과 스프링부트 모두 MVC패턴을 화용해 개발을 진행하는데 과연 MVC가 무엇인가?

MVC

MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.

MVC소개
Model데이터와 비즈니스 로직 관리Xml, Query, Service, Dao
View레이아웃과 화면 처리Jquery, Javascript, Ajax, Html, Jsp
Controller명령을 모델과 뷰 부분으로 라우팅Java, Control

Model

  • 앱이 포함해야할 데이터가 무엇인지를 정의

  • 데이터의 상태가 변경되면 모델을 일반적으로 뷰에게 알림(간혹 컨트롤러에 알리기도 함)

    1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
    1. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.

    : 데이터 변경이 일어났을 때 모델에서 화면 UI를 직접 조정해서 수정할 수 있도록 뷰를 참조하는 내부 속성값을 가지면 안 된다

    1. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.

    : 모델의 속성 중 텍스트 정보가 변경이 된다면, 이벤트를 발생시켜 누군가에게 전달해야 하며, 누군가 모델을 변경하도록 요청하는 이벤트를 보냈을 때 이를 수신할 수 있는 처리 방법을 구현해야함

View

  • 앱의 데이터를 보여주는 방식을 정의

    1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
    1. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.

    : 모델과 같은 자기 자신의 빼고는 다른 요소는 참조하거나 어떻게 동작하는지 알아서는 안됨 -> 뷰는 그저 데이터를 받으면 화면에 표시하는 역할만 해야함

    1. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

    : 변경 통지를 구현

Controller

  • 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함
    1. 모델이나 뷰에 대해서 알고 있어야 한다.
    : 모델이나 뷰는 서로의 존재를 모르고, 변경을 외부로 알리고, 수신하는 방법만 가지고 있는데 이를 컨트롤러가 중재하기 위해 모델과 그에 관련된 뷰에 대해서 알고 있어야 한다.
    1. 모델이나 뷰의 변경을 모니터링 해야 한다.
    : 모델이나 뷰의 변경 통지를 받으면 이를 해석해서 각각의 구성 요소에게 통지를 해야 한다. 또한, 애플리케이션의 메인 로직은 컨트롤러가 담당

참고문헌
https://developer.mozilla.org/ko/docs/Glossary/MVC
https://m.blog.naver.com/jhc9639/220967034588

0개의 댓글