[Spring] Spring MVC

이동엽·2023년 2월 13일
0

Spring MVC란

Spring에서 지원하는 모든 기능들을 포함해서 Spring Framework라고 부른다.

Spring의 모듈 중에는 웹 계층을 담당하는 몇가지 모듈이 있는데 그중 서블릿 API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데 이걸 spring-webmvc라고 한다.
이걸 쓴다.

Spring Web MVC를 줄여서 Spring MVC라고 부르고, Spring MVC 프레임워크라고도 부른다.

요약하자면

  • Spring MVC는 클라이언트의 요청을 편리하게 처리 해주는 프레임 워크다.
  • 우리가 만들게 될 샘플 애플리케이션은 Spring MVC가 제공해주는 기능을 이용해서 만든다.

Model(MVC의 M)

웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 한다.
그 작업의 결과 데이터를 클라이언트 에게 응답으로 돌려줘야하는데, 이 작업의 처리 결과 데이터를 Model이라고 부른다.

서비스 계층 : 클라이언트의 요청 사항을 구체적으로 처리하는 영역
비즈니스 로직 : 실제로 요청 사항을 처리하기 위해 Java 코드로 구현한 것

View(MVC의 V)

Moder 데이터를 이용해 웹 브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스를 제공하는 역할을 한다.

형태

  • HTML 페이지
  • PDF,Excel등의 문서 형태
  • XML,JSON 등 특정 형식의 포맷
    ->제가 배운건 JSON입니다.

JSON

클라이언트 애플리케이션과 서버 애플리케이션이 주고 받는 데이터형식

  • 기본 포맷 : {"속성":"값"}

Controller(MVC의 C)

클라이언트 측의 요청을 직접적으로 전달 받는 엔드포인트로써 Model과 View의 중간에서 상호작용을 해주는 역할
->전달하는 역할

MVC의 동작 방식과 구성 요소


클라이언트가 요청을 전송했을때 MVC가 내부적으로 처리 과정
(1) 클라이언트가 요청을 전송하면 DispatcherServlet 클래스에 요청이 전달한다.
(2) DispatcherServlet은 클라이언트의 요청을 처리할 Controller에 대한 검색을 HandlerMapping인터페이스한테 요청함
(3) HandlerMapping은 클라이언트 요청과 매핑되는 핸들러 객체를 다시 DispatcherServlet에게 리턴한다

핸들러 객체 : 해당 핸들러의 Handler메소드 정보를포함하고 있음.
Handler 메소드는 Contrller 클래스 안에 구현된 요청 처리 메소드다.

(4) Controller 클래스를 찾았으나 실제로 클라이언트 요청을 처리할 Handler메소드를 찾아서 호출해야한다.
DispatcherServle은 Handler 메소드를 직접 호출 안하고, HandlerAdpater한테 Handler 메소드 호출 위임함
(5)HandlerAdapter는 DispatcherServlet으로부터 전달받은 Contrller 정보를 기반으로 해당 controller의 Handler메소드를 호출한다.

(6)Controller의 Handler 메서드는 비즈니스 로직 처리 후 리턴 받은 Model 데이터를 HandlerAdapter에게 전달한다.

(7) HandlerAdapter는 전달받은 Model 데이터와 View 정보를 다시 DispatcherServlet에게 전달한다

(8) DispatcherServlet은 전달 받은 View 정보를 다시 ViewResolver에게 전달해서 View 검색을 요청한다.

(9) ViewResolver는 View 정보에 해당하는 View를 찾아서 View를 다시 리턴한다.

(10) DispatcherServlet은 ViewResolver로부터 전달 받은 View 객체를 통해 Model 데이터를 넘겨주면서 클라이언트에게 전달할 응답 데이터 생성을 요청한다

(11) View는 응답 데이터를 생성해서 다시 DispatcherServlet에게 전달한다

(12) DispatcherServlet은 View로부터 전달 받은 응답 데이터를 최종적으로 클라이언트에게 전달합니다.

DispatcherServlet

애 역할이 무엇인가?
->요청 처리들을 다른 요소에 위임을 하면서 상호작용하는 역할이다.

profile
씨앗

0개의 댓글