Spring

MVC패턴에 대해서

SN.Flower 2023. 10. 25.


1. MVC패턴

 

MVC는 Model, View, Controller의 약자이다. 하나의 애플리케이션 또는 프로젝트를 구성할 때 그 구성요소를 모델 뷰, 컨트롤러의 세가지 역할로 구분한다.

 

MVC 패턴의 전형적인 흐름은 위와 같다.

사용자가 controller에 요청을 보내면 controller는 model에 비즈니스 로직을 호출하고 수행 결과를 저장한다.

그리고 응답에 필요한 데이터를 model에서 가져와 시각적인 표현을 담당하는 view에 전달하고 view에서 사용자에게 응답하는 화면을 보여주게 된다.

 

2. 모델 (Model)

 

model은 데이터와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비즈니스 로직을 처리하기 위한 역할을 담당한다.

model은 아래와 같은 규칙을 가지고 있다.

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

 

3. 뷰 (View)

view는 사용자에게 시각적으로 보여주는 화면(UI)이다. 즉, 사용자와 상호작용을 하며 데이터를 입력받고, controller로부터 받은 model의 결과값을 사용자에게 화면으로 출력하는 역할을 담당한다.

view는 아래와 같은 규칙을 가지고 있다.

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

 

4. 컨트롤러 (Controller)

controller는 model과 view를 잇는 다리 역할을 담당한다. 즉, model이 데이터를 어떻게 처리할지 알려주고 변경된 데이터를 view에 반영하게 해주는 역할을 한다.

사용자로부터 view에 요청이 생기면 controller는 model을 호출해서 요청을 수행하고, model이 요청을 모두 수행하면 그 결과를 다시 view에 전달한다.

controller는 아래와 같은 규칙을 가지고 있다.

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

 

5. MVC패턴의 장점

 

MVC패턴을 사용하면 사용자가 보는 화면과 데이터 처리, 이 2가지를 중간에서 제어하는 컨트롤러 총 3가지로 역할을 구분해서 각자의 책임에 집중할 수 있게 된다.

적절한 역할과 책임이 분리되어 집중할 수 있게 된다면 유지보수성, 확장성, 유연성이 증가하고 중복 코딩의 문제점 또한 사라진다.

 

6. MVC패턴의 한계

 

view는 controller에 연결되어 화면을 구성하는 구성요소이므로 controller는 다수의 view를 가질 수 있다.

그리고 model은 controller를 통해서 view와 연결되지만, controller에 의해서 하나의 view에 연결될 수 있는 model도 여러개가 될 수 있다.

즉, view와 model이 서로 의존성을 띌 수 있게 되고 controller에 다수의 model과 view가 복잡하게 연결되어 있는 상황이 발생할 수 있다.

 


Reference

https://m.blog.naver.com/jhc9639/220967034588

 

[개발자 면접준비]#1. MVC패턴이란

오늘은 개발자면접에 많이 나오기도 하는 MVC패턴에 대해서 알아보고자 합니다. 과연 MVC패턴이 무엇...

blog.naver.com

https://velog.io/@seongwon97/MVC-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80

 

MVC 패턴이란?

모델-뷰-컨트롤러(model–view–controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.

velog.io

https://cocoon1787.tistory.com/733

 

[개발상식] MVC 패턴이란? (Model-View-Controller)

🚀이번 포스팅은 개발자 면접에서 자주 나오는 질문 중의 하나인 "MVC패턴"에 대한 내용입니다. MVC패턴의 의미와 사용해야 하는 이유, 사용 예시 등등에 대해 알아보겠습니다. 💡 MVC 패턴이란?MV

cocoon1787.tistory.com

 

댓글