MVC (Model-View-Controller) 패턴이란?
애플리케이션의 구조를 세 가지 주요 부분으로 나누어 개발하는 방법
각각의 부분은 특정 역할을 담당하며 서로 간의 의존성을 최소화하여 유지보수성과 재사용성을 향상시킨다.
- 모델 (Model)
- 애플리케이션의 데이터와 비즈니스 로직을 담당합니다.
- 데이터의 상태를 관리하고, 데이터의 변경을 통보받아 뷰에 업데이트를 알립니다.
- 사용자 인터페이스나 컨트롤러와 독립적으로 존재하며, 데이터를 다루는 규칙과 로직을 정의합니다.
- 뷰 (View)
- 사용자 인터페이스를 담당합니다.
- 모델의 상태에 따라 화면을 표시하고, 사용자의 입력을 컨트롤러에 전달합니다.
- 모델과 직접적으로 상호작용하지 않으며, 모델의 변경을 감지하여 화면을 업데이트합니다.
- 컨트롤러 (Controller)
- 사용자 입력을 처리하고, 그에 따라 모델을 업데이트하거나 뷰를 갱신합니다.
- 모델과 뷰 사이의 중개자 역할을 수행하며, 사용자의 명령에 따라 모델을 제어하고 모델의 변경을 감지하여 뷰를 업데이트합니다.
- 뷰 및 모델에 대한 구체적인 세부사항을 숨기고, 시스템의 전반적인 동작을 조정합니다.
MVC의 이점과 장단점
이점
- 유지보수성 및 확장성: 각 부분이 독립적으로 존재하기 때문에 모델, 뷰, 컨트롤러를 분리하여 변경 및 확장이 용이하다.
- 재사용성: 각 부분이 독립적이기 때문에 모델, 뷰, 컨트롤러를 다른 프로젝트에서 재사용할 수 있다.
- 테스트 용이성: 각 부분이 독립적으로 테스트 가능하며, 특히 컨트롤러는 모델과 뷰를 모의(mock) 객체로 대체하여 테스트하기 용이하다.
- 유연성: 새로운 기능을 추가하거나 수정할 때 하나의 부분을 변경해도 다른 부분에 영향을 미치지 않아 유연하다.
장단점
- 복잡성: MVC 패턴은 세 부분으로 나누어져 있어 초기 구현이나 작은 규모의 애플리케이션에서는 오버헤드가 발생할 수 있다.
- 학습 곡선: 처음에는 이 세 가지 부분의 역할 및 상호 작용을 이해하는 데 시간이 걸릴 수 있다.
'프로그래밍 > Computer Science(CS)' 카테고리의 다른 글
객체지향 프로그래밍의 5가지 설계 원칙, SOLID (0) | 2024.03.15 |
---|---|
반복자 패턴(iterator pattern) (0) | 2024.03.07 |
프록시 패턴(proxy pattern) (0) | 2024.03.06 |
옵저버 패턴(observer pattern) (0) | 2024.02.29 |
전략 패턴(strategy pattern) (0) | 2024.02.27 |