Spring MVC란 무엇일까요?
Spring MVC란 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈을 의미합니다.
여기서 말하는 서블릿(Servlet)이란?
클라이언트의 요청을 처리하도록 규약에 맞추어서 Java코드로 작성하는 클래스 파일을 의하며
아파치 톰캣(Apache Tomcat)은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는
서블릿 컨테이너(Servlet Container) 중 하나입니다.
MVC (Model View Controller)의 역할
Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 해주게되는데요, 이러한 요청에 대한 응답이 바로 결과 데이터이자 "Model" 입니다.
또한,
클라이언트의 요청을 처리하는 영역을 "서비스계층(Service Layer)",
요청사항을 처리하기 위해 Java 코드로 구현한 것을 "비즈니스 로직(Bussiness Logic)"이라고 합니다.
이러한 Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스(Resource)를 제공하는 역할을 하는 것을 "View"라고 합니다.
Veiw의 형태는 다양한데요,
HTML, XML, JSON, PDF, Excel 등 다양한 형태와 포맷으로 출력 및 변환이 가능합니다.
- JSON => 클라이언트 애플리케이션과 서버 애플리케이션이 주고 받는 데이터 형식입니다.
- {”속성”:”값”} 형태를 갖추고 있습니다.
마지막으로 "Controller"는 Spring MVC에서 C에 해당됩니다.
Controller는 클라이언트 측의 요청을 직접적으로 전달 받는 엔드포인트(Endpoint)로써 Model과 View의 중간에서 상호 작용을 해주는 역할을 합니다.
즉, Controller가 비즈니스 로직을 거쳐 만들어진 Model 데이터를 view로 전달하는 역할을 합니다.
Spring MVC의 동작방식
- 클라이언트가 요청하면 DispatcherServlet에 요청이 전달됩니다.
- DispatcherServlet는 HandlerMapping 인터페이스에 Controller에 대한 검색을 요청합니다.
- HandlerMapping은 클라이언트 요청과 매핑되는 핸들러 객체를 DispatcherServlet에게 리턴합니다.
- Handler 객체는 Handler 메서드 정보를 포함하며 Handler 메서드는 Controller 클래스 안에 구현되어 있습니다.
- 다시, DispatcherServlet는 HandlerAdpater에게 Handler 메서드 호출을 위임하고 HandlerAdpater는 Controller의 Handler메서드를 호출합니다.
- 이제부터는 반대로 반환됩니다.
- Handler 메서드는 비즈니스 로직 처리후 리턴받은 Model데이터를 HandlerAdpater에게 전달합니다.
- HandlerAdpater는 DispatcherServlet에게 전달합니다,
- DispatcherServlet은 View정보를 ViewResolver에게 전달하고 ViewResolver는 해당하는 View를 찾아서 리턴해줍니다.
- DispatcherServlet은 Model을 넘겨주고 View는 응답데이터를 생성해서 DispatcherServlet에게 전달합니다.
- DispatcherServlet는 응답데이터를 최종적으로 클라이언트에게 전달합니다.
'Back-End > Spring' 카테고리의 다른 글
[ Spring ] Spring Security란 무엇일까요?! (0) | 2022.11.18 |
---|---|
[ Spring ] DTO(Data Transfer Object)란 무엇일까요? (0) | 2022.11.17 |
[ Spring ] 스프링 컨테이너(Spring Container)는 무엇일까? (0) | 2022.11.14 |
[ Spring ] PSA (Portable Service Abstraction)란 무엇일까? (0) | 2022.11.14 |
[ Spring ] Spring Frame Work은 무엇이고 특징은 무엇일까? (0) | 2022.11.14 |