[Spring] Spring MVC란?

koline·2024년 10월 8일
0

Spring

목록 보기
14/15

Spring MVC


Spring MVCModel, View, Contoller로 Spring 애플리케이션의 비즈니스 로직을 분리하여 개발하는 방식을 말한다.

HTTP 요청이 들어오면 그 요청에 대한 처리를 각각의 관심사에 따라 책임범위를 분류하고 그에 따라 효율적인 처리를 관리하는 방식이다.




MVC의 요소



Model


MVC 패턴에서 Model이란 데이터를 나타낸다. 데이터베이스와 통신하며 데이터를 처리하는 DAORepository 뿐만 아니라 Service, DTO, 변수 등 데이터를 다루는 모든 영역이 Model에 해당한다.

Model은 데이터와 데이터를 처리하는 컴포넌트들로써 View 또는 Controller에 대한 어떤 정보도 가져서는 안된다.

필요한 데이터를 요청받으면 그에 맞는 데이터를 조회하고 가공하는 역할만 하고 그것을 UI에 직접 조정해서는 안되고, Controller를 통해서 필요한 정보를 전달받고 결과를 반환한다.


View


View는 사용자에게 보여지는 UI를 나타내는 말로, html이나 JSP, Thymeleaf 등이 이에 해당한다.

Model과 마찬가지로 Controller 또는 Model에 대해 어떠한 정보도 가져선 안된다.

변경이 일어나면 필요한 처리에 대한 부분을 구현하여 Controller를 통해 Model과 소통하고 필요한 정보를 요청한다.


Contoller


ControllerModelView를 이어주는 중간다리 역할을 한다.

ModelView에 대한 정보를 가지고 있으면서 변경을 지속적으로 모니터링해서 변경 사항의 처리에 필요한 내용을 각자에게 전달하는 역할을 한다.




REST API와의 관계


최근에는 ViewJSP 등을 사용하여 최종적으로 html을 반환하기 보다는, 데이터만을 반환하는 API 개발이 주로 사용된다.

API 개발은 물리적인 개념에서의 View를 프론트엔드로 분리하고 ModelControloler만 백엔드에서 처리함으로써 효율성을 향상시킨 방식이다.

그렇다면 이 방식은 Spring MVC와 상반되는 개념인가 하면 관점에 따라 다를 수 있지만 꼭 그렇진 않다.

일반적으로 얘기하는 REST API는 프론트엔드와 백엔드가 상호작용하기 위한 소통방식이기 때문에 MVC 구조가 없어진 것은 아니기 때문이다.

백엔드 애플리케이션 내에서 View가 사라진 것이 아니라 논리적인 개념에서 Viewhtml이 아닌 JSON 또는 XML 형태로 반환되는 것이다.

결론적으로 Controller가 반환하는 결과의 형태만 바꼈을 뿐, MVC 패턴의 사용 여부는 여전하다고 볼 수 있다.

profile
개발공부를해보자

0개의 댓글

관련 채용 정보