본문 바로가기

공부 자료/Spring

[Spring MVC] Spring MVC란?

Spring MVC

: 클라이언트의 요청을 편리하게 처리해주는 프레임워크

: 우리가 만들게 될 샘플 애플리케이션은 Spring MVC가 제공해주는 기능을 이용해서 만듦

 

 참고) Spring에서 지원하는 모든 기능을 Spring Framework라 하며, Spring의 모듈 중 '서블릿 API'를 기반으로 클라이언트의 요청을 처리하는 모듈이 Spring Web MVC라 하며, 이것을 Spring MVC라고 부름.

 

 

[MVC 의미]

MVC - Model

: 클라이언트의 요청을 전달받아 처리한 후 작업의 결과 데이터를 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 의미

 

* 서비스 계층 : 클라이언트의 요청 사항을 구체적으로 처리하는 영역

 * 비즈니스 로직 : 요청사항을 처리하기 위해 Java 코드로 구현한 것

 

 

MVC - View

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

 

View 형태

1) HTML 페이지의 출력

: 클라이언트 애플리케이션에 보여지는 HTML 페이지를 직접 렌더링해 클라이언트 측에 전송하는 방식

(HTML 태그로 구성된 페이지에 Model 데이터를 넣은 후 최종 HTML 페이지를 만들어 클라이언트 측에 전송)

>> 프론트엔드+백엔드 통합 구조

 

2) PDF, Exel 등의 문서 형태 출력

: Model 데이터를 가공해 PDF, Exel 문서를 만들어 클라이언트 측에 전송 (문서내에서 데이터가 동적 변경이 필요한 경우)

 

3) XML, JSON 등 특정 형식의 포맷으로의 변환★

: Model 데이터를 특정 프로토콜 형태로 변환해 변환된 데이터를 클라이언트 측에 전송

>> 특정 형식 데이터만 전송하고 프론트엔트 측에서 해당 데이터를 기반으로 페이지를 만드는 형식으로 영역 구분이 명확

장점)

: 영역 구분이 명확하기에 개발 및 유지보수 용이

: 프론트엔드에서 비동기 클라이언트 애플리케이션 제작이 가능

 

 

MVC - Controller

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

(클라이언트 요청을 전달 받아서 비즈니스 로직을 거친 후 Model데이터가 만들어지면 이 Medel 데이터를 View로 전달)

 

 

Spring MVC에서 처리 흐름)

1. 클라이언트가 요청 데이터를 전송

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

3. Controller가 Model 데이터 전달 >> Controller가 View에게 Model 데이터 전달

4. View가 응답 데이터 생성