레커
[CS] MVC 디자인 패턴 본문
모델-뷰-컨트롤러(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가 복잡하게 연결되어 있는 상황이 생길 수 있습니다.
참고
- https://cocoon1787.tistory.com/733
- https://medium.com/@jang.wangsu/%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-mvc-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80-1d74fac6e256
'개발 > 기타' 카테고리의 다른 글
[네트워크]네트워크 계층의 역할 과 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 |