본문 바로가기
Back-end

MVC 패턴이란? - Model View Controller 디자인 패턴 알아보기

by 셀킴 2024. 8. 30.
728x90
반응형

MVC 디자인 패턴

MVC 디자인 패턴(The Model-View-Controller pattern)은 애플리케이션을 모델, 뷰, 컨트롤러 세 개의 구성 요소로 분리하는 개발 방법입니다. 모델과 뷰는 보통 직접적으로 연결되지 않고, 컨트롤러를 통해 간접적으로 상호작용하는 방식으로 구성됩니다. 구성 요소 간 역할 분담이 명확해 코드베이스 관리 및 유지가 쉬워지는 장점이 있습니다.

 

@selinakk

 

Model

모델은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다.

모델은 컨트롤러의 요청에 따라 데이터를 반환하거나 상태를 업데이트(변경)합니다. 하지만, 모델이 그 변경 사항을 직접적으로 컨트롤러나 뷰에 전달하지 않습니다. 모델은 뷰와 컨트롤러에 직접 연결되지 않는 경우가 많습니다. 이것은 분리의 장점 중 하나입니다. 분리를 통해 모델은 시각적 프레젠테이션과 무관하게 구축 및 테스트될 수 있습니다.

비즈니스 로직이란?

비즈니스 로직은 소프트웨어가 해결하고자 하는 실제 문제를 처리하는 규칙과 절차를 말합니다. 쉽게 말해, 비즈니스 로직은 특정 업무나 기능을 수행하기 위해 소프트웨어가 따라야 할 로직(규칙과 절차)입니다. 예를 들어, 온라인 쇼핑몰에서 "고객이 물건을 구매하면 재고에서 수량을 줄이고, 결제를 처리하고, 주문 내역을 저장하며, 고객에게 영수증을 보내는 일련의 과정"이 바로 비즈니스 로직입니다.

 

View

뷰는 UI(사용자 인터페이스)를 담당하며, 사용자에게 모델의 데이터를 시각적으로 표시합니다.

사용자가 뷰와 상호작용하여 입력을 하면 뷰는 사용자 입력을 컨트롤러에 전달합니다. 컨트롤러가 어떤 뷰를 사용할지 결정하고 모델로부터 받은 데이터를 뷰에게 전달하면 뷰는 그 데이터를 바탕으로 UI를 업데이트합니다. 

 

Controller

컨트롤러는 모델과 뷰 사이의 중개자로 상호작용을 제어합니다. 어떤 모델 유형으로 작업할지, 어떤 뷰로 렌더링할지 선택하는 역할을 합니다. 사용자 입력이나 애플리케이션 로직을 기반으로 모델에 데이터를 요청하거나 모델의 상태를 업데이트합니다. 

컨트롤러가 중간에서 너무 많은 비즈니스 로직을 포함하면 복잡해지기 때문에, 세부적인 비즈니스 로직은 서비스 계층에 두도록 합니다. 예를 들면고객이 물건을 구매하면 재고에서 수량을 줄이는 로직을 컨트롤러가 아닌 서비스 계층에서 수행하고, 컨트롤러는 서비스롤 호출하는 역할만 하는 것입니다.

 

 

MVC패턴 흐름 요약

사용자 입력

뷰가 컨트롤러에 요청

컨트롤러가 모델에 데이터 요청/상태 업데이트

델이 컨트롤러에게 결과 반환

컨트롤러가 뷰에게 데이터 전달

뷰 업데이트

 


 

정보 출처 https://www.geeksforgeeks.org/mvc-design-pattern/  https://learn.microsoft.com/en-us/aspnet/core/mvc/overview?view=aspnetcore-8.0

 

728x90
반응형