개발소설

Spring MVC 본문

Spring Framework

Spring MVC

ChaeHing 2023. 4. 12. 21:54
  • spring-webmvc : Spring의 모듈 중에서 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈
  • 서블릿(Servlet) : 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일
    • 서블릿 컨테이너(Servlet Container) : 서블릿들이 웹 애플리케이션으로 실행이 되도록 해준다.
      • 대표적으로 아파치 톰캣(Apache Tomcat)이 있다.
  • spring-webmvc 모듈이 Spring MVC
  • Spring MVC는 웹 프레임워크의 한 종류이기 때문에 Spring MVC 프레임워크라고도 불린다.
  • Spring MVC에서 MModel, VView, C는 Controller
    • Model : 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터
    • View :  Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스(Resource)를 제공 - 대표적으로 JSON 포맷
    • Controller : 클라이언트 측의 요청을 전달 받아 Model과 View의 중간에서 상호 작용을 해주는 역할

Spring MVC의 요청흐름

  1. 클라이언트가 요청시 DispatcherServlet에게 요청이 전달
  2. DispatcherServlet은 클라이언트의 요청을 처리할 Controller에 대한 검색을 HandlerMapping 인터페이스에게 요청
  3. HandlerMapping클라이언트 요청과 매핑되는 핸들러 객체를 다시 DispatcherServlet에게 리턴
  4. DispatcherServlet은 Handler 메서드를 직접 호출하지 않고, HandlerAdpater에게 Handler 메서드 호출을 위임
  5. HandlerAdapter는 DispatcherServlet으로부터 전달 받은 Controller 정보를 기반으로 해당 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. DispatcherServletView로부터 전달 받은 응답 데이터를 최종적으로 클라이언트에게 전달

DispatcherServlet의 역할

  • DispatcherServlet이 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용하면서 클라이언트의 요청을 처리하는 패턴을 Front Controller Pattern

 

JSON 포맷을 JAVA 클래스로 변경해주는 온라인 툴

https://jsonformatter.org/json-to-java 

'Spring Framework' 카테고리의 다른 글

DTO(Data Transfer Object)  (0) 2023.04.13
SpringMVC - Controller  (0) 2023.04.12
AOP(Aspect Oriented Programming)  (0) 2023.04.08
DI - 스프링 컨테이너(Spring Container), 빈(bean)  (0) 2023.04.05
Spring Framework 기본 개념  (0) 2023.04.02
Comments