새소식

반응형
Java/Spring

MVC 패턴

  • -
반응형

MVC 패턴이란?

MVC 패턴은 디자인패턴 중 하나이다.

MVC는 Model, View, Controller의 약자입니다. 하나의 어플리케이션을 개발할 때 프로젝트 구성요소를 세가지의 역할로

구분한 패턴입니다. 

 

 

위 이미지 처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 처리하고 해당 데이터는 View를 통해 사용자에게 다시 보여지게 됩니다. 실제적 MVC 패턴 구조는 아래와 같습니다.

 

 

 

Model

어플리케이션의 데이터를 나타낸다. 자세히 말하면 정보들의 가공을 책임지는 컴포넌트라고 말한다.

컨트롤러의 요청에 의해 DB와 연동하여 데이터를 다루는 일 등 데이터와 연관된 비즈니스 로직을 처리하는

역할을 한다.

 

Model 규칙

1. 사용자가 편집하기를 원하는 모든 데이터를 가지고 있어야 한다.

2. View나 Controller에 대해서 어떤 정보도 알지 말아야 한다.

3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야만 한다.

 

 

Controller

Model과 View 사이를 이어주는 인터페이스 역할을 한다.

사용자의 요청을 받으면 Controller는 Model에게 데이터를 어떻게 처리해야하는지 알려주는 역할을 하며,

처리된 데이터를 View에게 전달하는 역할을 한다.

 

Controller 규칙

1. Model 과 View에 대해서 알고 있어야 한다.

2. Model 과 View의 변경에 대해 모니터링을 해야한다.

 

View

사용자에게 보여지는 화면이며, User Interface를 의미한다. Controller가 Model에게 데이터 요청을 보내고

요청된 데이터를 화면에 전달하면 View는 전달된 데이터를 보여주는 역할을 한다.

여러개의 View가 존재할 수 있다.

 

View 규칙

1. Model 이 가지고 있는 정보를 따로 저장해서는 안된다.

2. Model 과 Controller에 대해서 알면 안된다.

3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현 해야한다.

 

 

MVC 패턴을 사용하는 이유

각 컴포넌트인 Model, View, Controller로 나누어 자신이 맡은 역할만 수행한 후 결과만 넘겨주기 때문에

시스템 결합도를 낮출 수 있다. 또한 특정 컴포넌트의 문제가 생겼을 경우 그 컴포넌트만 수정하면 되기 때문에

유지보수도 편리하다.

 

1. 시스템 결합도를 낮출 수 있다.

2. 유지보수 하기에 편리하다.

 

MVC 패턴의 한계

복잡한 대규모 프로젝트의 경우 다수의 뷰와 모델이 컨트롤러를 통해 연결되기 때문에 컨트롤러가 불필요하게 커지는

현상이 발생한다. 

 

반응형

'Java > Spring' 카테고리의 다른 글

HTML 과 JSP 차이  (0) 2022.04.04
객체지향 프로그래밍  (0) 2022.03.23
Spring Boot  (0) 2022.03.21
Spring Data JPA, ORM(Object-Relational Mapping)  (0) 2022.03.21
Spring 이란  (0) 2022.03.19
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.