728x90
Spring MVC 란 ?
- 클라이언트의 요청을 편리하게 처리해주는 프레임워크
- Servlet API 기반으로 클라이언트의 요청을 처리하는 모듈 (spring-webmvc -> 보통 spring MVC라 부름)
Servlet이란?
클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일
Spring MVC 내부에서 Servlet을 기반으로 웹 애플리케이션이 동작한다
Model
- Spring MVC에서 M에 해당
- 웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 수행
- 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model 이라고 한다
클라이언트의 요청 사항을 구체적으로 처리하는 영역을 서비스 계층(Service Layer)이라고 하며, 실제로 요청 사항을 처리하기 위해 Java 코드로 구현한 것을 비즈니스 로직(Business Logic)이라고 한다
View
- Spring MVC에서 V에 해당
- Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스를 제공하는 역할
View의 종류
- HTML 페이지의 출력
- HTML 페이지를 직접 렌더링 해서 클라이언트 측에 전송하는 방식
- Thymeleaf, FreeMarker, JSP + JSTL, Tiles 등
- PDF, Excel 등의 문서 형태로 출력 (문서 내에서 데이터가 동적으로 변경되어야 하는 경우 사용)
- XML, JSON 등 특정 형식의 포맷으로의 변환
- 프론트엔드 측에서 이 데이터를 기반으로 HTML 페이지를 만드는 방식
- 프론트엔드 영역과 백엔드 영역이 명확하게 구분되어 개발 및 유지보수가 상대적으로 용이
- 프론트엔드 측에서 비동기 클라이언트 애플리케이션을 만드는 것이 가능
Controller
- Spring MVC에서 C에 해당
- 클라이언트 측의 요청을 직접적으로 전달받는 엔드포인트로써 Model과 View의 중간에서 상호 작용을 해주는 역할
- 클라이언트 측의 요청을 전달받아서 비즈니스 로직을 거친 후에 Model 데이터가 만들어지면, 이 Model 데이터를 View로 전달
Spring MVC 의 동작 방식
Client가 요청 데이터 전송
-> Controller가 요청 데이터 수신 -> 비즈니스 로직 처리 -> Model 데이터 생성 -> Controller에게 Model 데이터 전달
-> Controller가 View에게 Model 데이터 전달 -> View가 응답 데이터 생성
728x90
'개발일지 > Spring' 카테고리의 다른 글
Spring JPA 엔티티 매핑 (0) | 2022.11.05 |
---|---|
JPA (Java Persistence API) (0) | 2022.11.04 |
Spring - Pagination (0) | 2022.10.31 |
Spring - AOP (0) | 2022.10.23 |
Spring MVC의 동작 방식과 구성 요소 (0) | 2022.10.22 |