본문 바로가기
Spring

[Spring] Spring MVC란?

by jungha_k 2022. 10. 21.

Spring Framework - Spring에서 지원하는 모든 기능들

 

Spring-webmvc

: Spring의 여러 웹 계층 처리 모듈 중 하나

= 클라이언트의 요청 처리 모듈, 서블릿(Servlet Api) 기반

 

* 서블릿? 

: 클라이언트의 요청 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일

 

*서블릿 컨테이너?

: 서블릿들이 웹 애플리케이션으로 실행이 되도록 함 (ex. 톰캣)

 


Spring MVC 

 

Model

= 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터

 

 

View 

= Model 데이터를 이용해서 클라이언트 애플리케이션 화면(ex.웹 브라우저)에 보여지는 리소스 제공

 

내가 앞으로 배울 View 형태 - Model 데이터를 JSON 프로토콜 데이터로 변환하는 것

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

{"속성" : "값"}

 

 

Controller

= 클라이언트의 요청을 직접 받는 엔드포인트(Endpoint)

= Model, View의 중간에서 상호 작용 역할

 

 

MVC 처리 흐름 

 

Client가 요청 데이터 전송

Controller가 요청 데이터 수신비즈니스 로직 처리Model 데이터 생성

→ Controller에게 Model 데이터 전달 → Controller가 View에게 Model 데이터 전달

→ View가 응답 데이터 생성

 


Spring MVC 동작 방식과 구성 요소 

 

 

  • DispatcherServlet : 클라이언트의 요청을 제일 먼저 전달 받는다.
  • DispatcherServlet은 HandlerMapping 인터페이스에게 Controller의 검색을 위임한다.
  • DispatcherServlet은 검색된 Controller 정보를 토대로 HandlerAdapter 인터페이스에게 Controller 클래스내에 있는 Handler 메서드의 호출을 위임한다.
  • HandlerAdapter 인터페이스는 Controller 클래스의 Handler 메서드를 호출한다.
  • DispatcherServlet은 ViewResolver에게 View의 검색을 위임한다.
  • DispatcherServlet은 View에게 Model 데이터를 포함한 응답 데이터 생성을 위임한다.
  • DispatcherServlet은 최종 응답 데이터를 클라이언트에게 전달한다.

 

DispatcherServlet : 다른 구성 요소들에게 요청들을 '위임' 하는 역할

(ex. HandlerMapping아 Handler Controller 찾아줄래? ...)

 

Front Controller Pattern = DispatcherServlet 이 애플리케이션 가장 앞단에 배치되어

다른 구성 요소들과 상호작용하면서 클라이언트의 요청을 처리하는 패턴 

 

 

 

* HandlerMapping, HandlerAdapter, ViewResolver 용어 설명 

 

 

Spring MVC의 동작 방식 추가 설명

Handler 용어의 의미 핸들(Handle) 이라고 하면 일반적으로 자동차의 핸들을 제일 먼저 떠올릴 수 있는데, 자동차의 핸들은 운전자가 직접 핸들을 움직이면서 직접적으로 자동차의 주행을 처리하는

itvillage.tistory.com

 


학습할 양들이 많아지면서 머릿속에 정리가 되지 않았는데

간단히라도 정리하니까 확실히 도움이 되는 것 같다~_~

 

단순 복습 외에 인강이나 문제 등 더 공부하고 싶으면 

저녁시간도 빠듯히 보내야겠다는 생각이 들었다.. 저녁에 밖에 잠시 다녀왔더니 시간이 모자라다🥺

댓글