본문 바로가기
Research/Design pattern

아키텍처_MVC 패턴

by RIEM 2023. 2. 14.
728x90

MVC 패턴에 대해

들어가기

백엔드 기술에 집중한 프로젝트를 진행중인 상황에서 백엔드에서 모두 프론트 화면까지 간편히 처리할 수 있는 방법을 찾아야 했습니다. 그러다 nest.js에서도 편리하게 MVC 패턴을 적용하면 풀스택으로 개발할 수 있지 않을까 라는 생각이 들었고, 이에 대해 복습 차원에서 다시 한번 짚고 넘어가기 위해 이 글을 작성했습니다.

MVC 란?

![MDN][https://developer.mozilla.org/en-US/docs/Glossary/MVC/model-view-controller-light-blue.png]
이미지 출처 : https://developer.mozilla.org/ko/docs/Glossary/MVC

![][https://media.geeksforgeeks.org/wp-content/uploads/MVC-Design-Pattern.png]
이미지 : https://www.geeksforgeeks.org/mvc-design-pattern/

MVC는 Model, View, Controller의 약자로, 수 많은 디자인 패턴 중 하나입니다. 디자인 패턴은 특정한 의도에 맞게 코드의 구조를 특정 형태로 구축하는 것을 의미합니다.

Model : 데이터

Model은 순수히 데이터에 관한 것만 다루고, 어떻게 화면에 전달될 지에 대한 로직이랑 무관합니다.

View : 화면

View는 데이터를 어떻게 화면에 나타낼 지 담당하는 레이어입니다.

Controller : 명령을 모델과 뷰로 라우팅

Controller는 Model과 View의 중개 역할을 해줍니다. 마치 라우터와 같이 유저가 특정 주소로 요청을 할 경우 어떤 뷰를 보여줄 것인지 분기 처리를 해줍니다.

MVC의 한계

MVC 패턴은 각 기능을 따로 나눠서 사용하고자 개발했지만, 어플리케이션의 규모가 커질 수록 Controller에 연결되는 Model과 Views들도 많아지는데, 결국 서로간에 의존성이 커지면서 유지보수가 어려워지는 것은 마찬가지입니다.

MVC 파생

MVP, MVVM, Viper, Clean Architecture, Flux, Redux, RxMVVM 등이 있다고 합니다.

레퍼런스

728x90

'Research > Design pattern' 카테고리의 다른 글

nest.js_MVC 패턴 적용하기  (0) 2023.02.14
페이지 API 데이터 구조에 대한 고민  (0) 2023.02.14
software_Message Broker란  (0) 2023.02.07

댓글