Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

랩터

[Spring MVC] Spring MVC 아키텍처 본문

공부/Spring

[Spring MVC] Spring MVC 아키텍처

raptorhs 2024. 7. 11. 20:05

학습 목표

  • Spring MVC가 무엇인지 알 수 있다.
  • Spring MVC의 동작 방식과 구성요소를 이해할 수 있다.

Spring MVC란?

서블릿API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데, 이 모듈이 바로 Spring MVC입니다.

 

서블릿이란?

서블릿은 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일입니다. 아파치 톰캣은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너입니다.

 

Spring MVC에 대해 두가지만 기억합시다.

  • Spring MVC는 클라이언트의 요청을 편리하게 처리해주는 프레임워크이다.
  • 우리가 만들게 될 샘플 애플리케이션은 Spring MVC가 제공해 주는 기능을 이용해서 만든다.

 

Model

Model은 Spring MVC에서 M에 해당됩니다.

 

Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청사항을 처리하기 위한 작업을 합니다.

처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려줘야 하는데, 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model이라고 합니다. 

 클라이언트의 요청 사항을 구체적으로 처리하는 영역을 서비스 계층이라고 합니다.

 

View

View는 Spring MVC에서 V에 해당됩니다.

View는 앞에서 설명한 Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보이는 리소스를 제공하는 역할을 합니다.

 

 

Spring MVC에는 다양한 View 기술이 포함되어 있는데 View의 형태는 이렇습니다.

  • XML, JSON 등 특정 형식의 포맷으로의 변환
    • Model 데이터를 특정 프로토콜 형태로 변환해서 변환된 데이터를 클라이언트 측에 전송하는 방식입니다.
    • 이 방식의 경우 특정 형식의 데이터만 전송하고, 프론트엔드 측에서 이 데이터를 기반으로 HTML 페이지를 만드는 방식입니다.
    • 장점
      • 프론트엔드 영역과 백엔드 영역이 명확하게 구분되므로 개발 및 유지보수가 상대적으로 용이합니다.
      • 프론트엔드 측에서 비동기 클라이언트 애플리케이션을 만드는 것이 가능해집니다.

JSON(JavaScript Object Notation)이란?

JSON은 우리가 앞으로 학습하게 될 Spring MVC에서 클라이언트 애플리케이션과 서버 애플리케이션이 주고받는 데이터 형식입니다.

  • JSON의 기본 포맷
    • {”속성”:”값”} 형태입니다.

Controller

Controller는 Spring MVC에서 C에 해당됩니다.

 

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

 

 

핵심 포인트

  • Spring의 모듈 중에서 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈이 바로 spring-webmvc이다.
  • spring-webmvc 모듈이 Spring MVC이다.
  • Spring MVC는 웹 프레임워크의 한 종류이기 때문에 Spring MVC 프레임워크라고도 부른다.
  • Spring MVC에서 MModel을 의미한다.
    • 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model이라고 한다.
  • Spring MVC에서 V는 View를 의미한다.
    • View는 Model데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보이는 리소스를 제공한다.
    • 우리는 실질적으로 학습하게 되는 View는 JSON 포맷의 데이터를 생성한다.
  • Spring MVC는 C는 Controller를 의미한다.
    • Controller는 클라이언트 측의 요청을 전달받아 Model과 View의 중간에서 상호 작용을 해주는 역할을 담당한다.
  • Spring MVC에서 MVC의 전체적인 동작 흐름은 다음과 같다.
    • Client가 요청 데이터 전송
    • -> Controller가 요청 데이터 수신 ->비즈니스 로직 처리->Model데이터 생성
    • ->Controller에게 Model 데이터 전달-> Controller가 View에게 Model데이터 전달
    • ->View가 응답 데이터 생
  •  

'공부 > Spring' 카테고리의 다른 글

[Spring MVC] DTO(Data Transfer Object)  (0) 2024.07.18