본문 바로가기

IT관련 정보

MVC 패턴이란?

오늘은 MVC 패턴에 대해 간단하게 알아보자

평소에 패턴을 잘 사용하지 않았지만 요즘들어 필요성을 체감하고 있다.....

MVC는 Model-View-Controller의 약자로, 소프트웨어를 구성하는 세 가지 주요 구성 요소를 분리하여 디자인하는 아키텍처 패턴이다.

출처: XESCHOOL

 

Model: 애플리케이션의 데이터와 비즈니스 로직을 담당한다.

 

View: 사용자 인터페이스를 표시하고 사용자 입력을 처리한다.

 

Controller: 모델과 뷰 간의 상호 작용을 조정하고, 사용자 입력에 따라 모델을 업데이트하거나 뷰를 업데이트한다.

 

출처: https://hyeon9mak.github.io/5-rules-for-MVC-pattern/

 

1. 각 구성 요소의 역할

모델 (Model)

데이터를 관리하고 비즈니스 로직을 수행한다.

데이터의 상태를 유지하고 업데이트한다.

: 데이터베이스와의 상호 작용, 데이터 가공 및 처리 등의 기능

(View)

사용자에게 정보를 표시하고 사용자 입력을 받는다.

모델의 데이터를 시각적으로 표현한다.

: 웹 페이지, 앱의 UI

컨트롤러 (Controller)

사용자의 입력을 처리하고 이를 바탕으로 모델을 업데이트하거나 뷰를 업데이트한다.

모델과 뷰 간의 중재자 역할을 한다.

: 버튼 클릭, 폼 제출 등의 이벤트 처리한다.

2. 장점

유지보수와 확장에 용이: 유지보수와 확장이 용이하다. 각 구성 요소가 독립적으로 관리되기 때문이다.

재사용성 용이: 코드의 재사용성이 높다. 특히 모델 부분은 여러 뷰에서 재사용할 수 있다.

가독성 향상: 코드의 가독성이 좋아진다. 역할이 명확히 분리되어 있어 코드를 이해하기 쉽다.

 

3. 단점

테스트 어려움: 특히 뷰와 컨트롤러의 상호 작용이 복잡한 경우 유닛 테스트를 작성하기 어려울 수 있다.

너무 많은 중재자 역할: 컨트롤러가 모델과 뷰 사이의 중재자 역할을 수행하기 때문에 컨트롤러가 너무 많은 책임을 질 수 있다.

데이터 흐름의 복잡성: 데이터의 흐름이 복잡한 경우에는 MVC 패턴이 오히려 가독성을 떨어뜨릴 수 있다.

 

참 어렵지만 그래도 계속 공부해봐야겠다.