Spring/기초튼튼

MVC(Model, View, Controller) Pattern - 모델, 뷰, 컨트롤러 패턴

carrotweb 2022. 6. 5. 20:40
728x90
반응형

MVC(Model - 모델, View - 뷰, Controller - 컨트롤러) 패턴은 사용자 인터페이스(UI)와 Business Logic(비즈니스 로직)을 분리하여 사용자 인터페이스, 데이터, 제어를 분리하여 구현할 수 있게 해주는 Software Design Pattern(소프트웨어 디자인 패턴)입니다.

 

Software Design Pattern(소프트웨어 디자인 패턴)은 과거 개발 과정에서 공통적으로 발생한 문제점들을 정리하고 해결해서 최적의 방법(해결책, 노하우)을 유형별로 분류한 것입니다. 그래서 응용프로그램의 개발 시 디자인 패턴을 적용하면 효율적이고 재사용 가능한 응용프로그램을 개발할 수 있습니다.

 

MVC 패턴은 세 가지 구성 요소로 구성되고 구성 요소마다 독립적인 역할을 합니다.

 

 

세 가지 구성 요소를 간단하게 설명하겠습니다.

 

Model (모델)

응용프로그램의 정보(데이터 - 사용자가 입력/수정/삭제할 수 있는 모든 데이터)입니다. 정보는 데이터 값뿐만 아니라 데이터를 표현하기 위한 메타데이터(속성 정보)도 가지고 있습니다. 그리고 API를 통해 데이터베이스와 통신하여 검색/저장/관리하고 Business Logic(비즈니스 로직)을 처리합니다.

 

Controller(컨트롤러)로부터 이벤트(입력/수정/삭제)가 전달되면 Model(모델)은 이벤트를 처리하여 데이터를 업데이트합니다. (이벤트 수신)

 

 

View (뷰)

모델(데이터)을 이용하여 사용자와 상호작용하는 인터페이스(UI)에 표시합니다. (뷰는 모델을 따로 저장하지 않습니다.)

 

사용자가 인터페이스(UI)를 통해 입력/수정/삭제하면 Model(모델)이 변경되는 것이므로 Model(모델)의 정보를 이용하여 Controller(컨트롤러)에게 이벤트를 전달합니다. (이벤트 송신)

 

 

Controller (컨트롤러)

사용자가 입력한 데이터를 처리하고 응답하거나 사용자의 상호작용으로 들어온 이벤트(변경 사항)들을 처리하고 모델과 뷰에 전달(통지) 합니다. (컨트롤러는 모델에 맞는 뷰를 선택합니다.)

 

View(뷰)로부터 이벤트(입력/수정/삭제)가 전달되면 Controller(컨트롤러)는 Model(모델)에 이벤트를 전달하여 처리하고 업데이트된 데이터를 View(뷰)로 전달하여 인터페이스(UI)에 표시되게 합니다.

 

 

MVC 패턴을 사용하면 구성 요소(Model - 모델, View - 뷰, Controller - 컨트롤러) 간의 결합도(Coupling)가 낮아져 각각 분리하여 개발할 수 있고 수정이나 확장이 가능해집니다.

 

Spring Framework(스프링 프레임워크)를 기반으로 개발하면 MVC로 개발할 수 있습니다.

728x90
반응형