상세 컨텐츠

본문 제목

[Spring Boot]MVC 와 MVC2 패턴이란?

Backend

by choiDev 2023. 12. 19. 23:50

본문

MVC란?

MVC(Model View Controller)의 약자이다.

Model
> 어플리케이션의 데이터와 비즈니스 로직을 담당합니다.
> 데이터의 상태와 조작의 책임을 가지며, 데이터의 변경이 발생 시 View와 Controller에게 통지합니다.
> Spring Boot에서 Model은 POJO(Plain Old Java Object)나 JPA(Entity)와 같은 객체를 사용하여 표현됩니다.
> Model을 만들기 위해 작업하는 영역을 Service layer라고 하며, 요청사항을 처리하기 위해 데이터를 가공하거나, 처리하는것을 비즈니스 로직(Business Logic)이라한다.

View
> 사용자에게 보여지는 부분을 담당합니다.
> Model이 건네준 데이터를 표시하는 역할을 합니다.
> Spring Boot에서는 주로 Thymeleaf, FreeMarker, JSP등의 템플릿 엔진을 사용하여 동적인 HTML페이지를 생성하고, 이를 통해 사용자에게 제공하는것을 View라고 합니다.  


Controller
> Controller는 사용자의 요청을 처리하며, 그에따라 Model과 View의 상호작용을 돕는 역할을 합니다. 
> Spring에서는 Controller나 RestController 어노테이션을 사용해서 클래스를 컨트롤러로 정의하고 메서드 단위로 요청을 처리합니다.

 

MVC1을 간단하게 표현시

MVC1 패턴 구조

해당 구조는 JSP가 View와 Controller를 JSP가  담당하기에 하나의 JSP에서 담당할 코드가 많기에 유지보수가 어렵고 View나 Controller의 재사용이 어려워지게 됩니다.

 

MVC2

MVC2 패턴은 Controller가 JSP에서 떨어져나와 분리된 패턴입니다 이로 인해 JSP의 책임이 분산되며 각자의 역할이 분리되니 재사용성이 증가합니다. 

 

MVC2 패턴을 채용한 스프링 프레임워크 구조는 아래와 같은 라이프사이클을 지녔습니다.

Spring MVC 동작방식

Dispatcher Servlet은 다음 게시물에서 다루겠습니다.

'Backend' 카테고리의 다른 글

[SpringBoot] JPA (Java Persistence API)란?  (1) 2023.12.21
[Spring] ORM(Object Relational Mapping)란?  (0) 2023.12.21
[Flyway] 설정하기  (0) 2023.04.10
[Java8] Stream이란  (0) 2022.06.22
스프링 빈 (Spring Bean) & 자바 빈 (Java Bean)  (0) 2022.05.29

관련글 더보기