딱콩이의 봄

MVC패턴이란? 본문

개발/Spring

MVC패턴이란?

코린이딱콩 2022. 8. 17. 21:06

MVC란 Model-View-Controller의 약자로 애플리케이션을 세 가지 역할로 구분한 개발 방법입니다. 아래의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 됩니다.

 

MVC실행 경로

모델(MODEL)

데이터를 가진 객체를 모델이라고 지칭합니다. 데이터는 내부의 상태에 대한 정보를 가질 수도 있고, 모델을 표현하는 이름 속성으로 가질 수 있습니다. 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달하고, 모델의 변경사항을 전달함으로써  뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있습니다.

 

모델의 규칙

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

 

뷰(View)

View는 HTML/CSS/Javascript 들을 모아둔 컨테이너입니다. 사용자가 볼 결과물을 생성하기 위해 모델로부터 데이터 정보를 얻어옵니다. 

 

뷰의 규칙

  • 모델이 가지고 있는 정보를 따로 저장해서는 안됩니다.
  • 모델이나 컨트롤러와 같이 다른 구성 요소를 몰라야 합니다.
  • 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 합니다.

 

컨트롤러(Controller)

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

 

 

컨트롤러의 규칙

  • 모델이나 뷰의 정보를 알고 있어야 합니다.
  • 모델이나 뷰의 변경을 모니터링해야 합니다.

 

MVC패턴을 사용해야 하는 이유

  1. 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행이 가능합니다.
  2. Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성, 유연성에 유리합니다.
  3. 중복 코딩의 문제점을 제거합니다.

 

Reference

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

'개발 > Spring' 카테고리의 다른 글

Spring Security  (0) 2023.02.02
DI, IoC  (0) 2022.08.18
라이브러리와 프레임워크의 차이  (0) 2022.08.17
Comments