ASAP 개발
[개발 지식] MVC패턴 이란? 본문
안녕하세요~ 개발자 이현석입니다!!
이번에는 소프트웨어 디자인 패턴 중 가장 대표적이고 많이 사용되는 MVC패턴 대해 포스팅 하겠습니다.
이번 글도 역시 기초를 다지고 개념을 파악하는 것에 집중해 포스팅 해보겠습니다!
제가 이해하고 정리한 MVC패턴에 대한 내용이기 때문에 다른 의견과 피드백 댓글로 적어주시면 매우 감사하겠습니다!
그럼 포스팅 시작하겠습니다~~

MVC 패턴이란?
MVC 는 각각 M(Model) - V(view) - C(controller) 로 나뉘며 어플리케이션은 세개의 영역에 고유한 역할을 주어 개발하는 방식입니다. 잘 분리된 영역은 서로에게 영향을 주지 않아 유지보수에 용이합니다
여기서 중점을 두는 부분은 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두는 것이고
이를 앞으로는 '관심사 분리'라 칭하겠습니다~
그럼 이제 차례차례 M, V, C에 대한 설명을 하겠습니다.
M(Model)
모델은 비즈니스 로직을 처리하고 변경사항을 컨트롤러와 뷰에 전달하는 역할을 합니다.
쉽게 말하면 데이터베이스에 데이터를 가져오고,변경,저장하는 과정을 진행하는 곳인데 여기서 주의해야할 몇가지 규칙이 있습니다.
- Model은 Controller, View에 의존하지 않아야 함
- View, Controller에 대해 어떤 정보도 가지고 있지 않아야 함
- 변경이 일어나면 변경을 전달할 방법을 구현해야 함
V(View)
뷰는 받은 데이터를 화면에 표시해주는 역할을 하는데 데이터를 화면에 보여주기만 하고 별도로 저장하지 말아야합니다.
사용자가 화면의 내용을 변경하면 모델에게 전달해 모델을 변경해야 하는데 마찬가지로 주의사항이 있습니다.
- View는 Model에만 의존하며, Controller에 의존하면 안됨
- View가 Model에게 데이터를 받을때, 사용자마다 다르게 보여야하는 데이데만 받아야함
- 변경사항을 Model에 전달하는 처리방법을 구현해야함
C(Controller)
모델과 뷰의 다리 역할을 합니다.
모델과 뷰는 서로 연결된 것이 없는데 여기서 컨트롤러가 이 둘을 이어주는 역할을 진행 합니다.
이어 줄 때는 뷰 -> 컨트롤러 -> 모델 -> 컨트롤러 -> 뷰 이런 식으로 모델과 뷰가 직접 만나게 해서는 안됩니다.
- Controller는 Model과 View에 의존해도 됨
- Model이나 View의 변경을 모니터링하고 있어야함
MVC의 한계
MVC도 사람이 만든 패턴이기 때문에 당연히 한계와 단점이 있습니다.
규모가 커질 수록 Model과 View의 복잡도가 커지면서 화면구성이 안 좋아지는 단점이 있습니다.
이런 문제를 해결하기 위해 MVP, MVVM, Redux등 다양한 패턴이 출현했습니다.
이상 MVC 패턴에 대한 간단한 설명이었습니다.
아직 글로만 봐서는 잘모르겠시만 코드를 작성할때 규칙들을 곰곰히 생각하면 작성하는 시간을 가져야 할것 같습니다.
이상 포스팅 마치겠습니다.
'개발지식' 카테고리의 다른 글
[개발 지식] 객체지향 (0) | 2022.10.25 |
---|