Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

레커

[CS] MVC 디자인 패턴 본문

개발/기타

[CS] MVC 디자인 패턴

Prism Wrecker 2023. 9. 18. 18:55

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

model–view–controller 3개의 부분으로 나누어 관리하는 방식을 말합니다.

 

Model

데이터를 보관하는 부분을 말하며 데이터와 비즈니스 로직을 관리합니다.

 

 모델의 규칙

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

View

 화면상에 출력되는 부분을 말하며 주로  HTML/CSS/Javascript같이 레이아웃 과 화면 처리를 담당합니다.

 

 뷰의 규칙

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

Controller

사용자의 요청사항을 파악한 후 그에 따라 Model 에게 요청하고 그 데이터를 뷰에 전달하여 사용자에게 보여질 수 있도록 하는 부분입니다.

 

컨트롤러의 규칙

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

MVC 패턴을 사용 하는 이유

구성에 따라 맡은 부분만 하는 구조로 유지보수 및 확장, 유연성이 증가합니다.

또한 중복된 코드를 많이 줄일 수 있습니다.

 

비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적

 

MVC 패턴의 한계 

MVC에서 View는 Controller에 연결되어 화면을 구성하는 단위요소이므로 다수의 View들을 가질 수 있습니다. 그리고 Model은 Controller를 통해서 View와 연결되어지지만, 이렇게 Controller를 통해서 하나의 View에 연결될 수 있는 Model도 여러개가 될 수 있습니다.

즉, 화면에 복잡한 화면과 데이터의 구성 필요한 구성이라면, Controller에 다수의 Model과 View가 복잡하게 연결되어 있는 상황이 생길 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


참고

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

[네트워크]네트워크 계층의 역할 과 IP 구조_(1)  (0) 2024.09.25
[CS] REST / RESTful API  (0) 2023.09.18
[JS] 함수 (function)  (0) 2023.09.15
[JS] Object  (0) 2023.09.15
[JS] 조건문( if / switch )  (0) 2023.09.14