Spring/이론

Spring MVC 구조

JuNo_12 2025. 5. 8. 11:23

MVC란?

구성요소 역할 설명
Model 데이터, 비즈니스 로직 DB에서 가져온 데이터를 보관하고 처리하는 역할. 예: DB 모델, DTO, 서비스 로직 등
View 화면(UI) 사용자에게 보여지는 부분. 예: HTML, JSP, Thymeleaf 템플릿
Controller 흐름 제어 사용자의 요청을 받고, Model과 View 사이를 연결 ( @Controller, @RestController 클래스)

 


Spring MVC 흐름 요약

  1. 사용자가 요청 (ex. /user)
  2. DispatcherServlet이 요청을 받는다. (웹 애플리케이션에서 들어오는 모든 HTTP 요청을 가장 먼저 받아서, 적절한 Controller로 전달하는 중앙 처리자 역할)
  3. 적절한 Controller에게 전달
  4. Controller는 필요한 Model 데이터를 준비
  5. 그 데이터를 포함해서 View를 반환
  6. DispatcherServlet이 최종적으로 HTML 등으로 렌더링된 결과를 클라이언트에게 응답

httpmessegeconverter란?

: Spring MVC에서 HTTP 요청/응답을 Java 객체로 변환해주는 인터페이스. 쉽게 말해, 클라이언트가 보낸 JSON이나 TEXT 같은 데이터를 Java 객체로 바꾸거나, 반대로 Java 객체를 JSON, TEXT 등으로 바꿔서 응답할 수 있게 해주는 변환기 역할

 

왜 필요한가?

클라이언트 ↔ 서버 간 통신은 HTTP 프로토콜 기반이다.
클라이언트(예: 브라우저, 프론트엔드 앱)가 서버로 데이터를 보낼 때는 자바가 아니라 보통

  • JSON
  • XML
  • Form Data
  • Plain Text

같은 형식으로 데이터를 전송합니다.

( HTTP와 Java 객체 간의 자동 변환 도구)

 

언제 동작할까?

  • @RequestBody, @ResponseBody, 또는 @RestController 사용 시 자동으로 동작
  • Content-Type, Accept 헤더를 보고 어떤 변환기를 쓸지 Spring이 자동으로 선택

어노테이션 역할 주로 사용하는 형식 사용처

어노테이션 역할 주로 사용하는 형식 사용처
@RequestBody HTTP 요청 본문을 Java 객체로 변환 JSON, XML 등 클라이언트가 보낸 JSON 데이터를 자바 객체로 변환할 때 사용
@ResponseBody Java 객체를 HTTP 응답 본문에 변환하여 클라이언트에 반환 JSON, XML 등 서버에서 Java 객체를 JSON 형태로 클라이언트에 응답할 때 사용
@RestController @Controller + @ResponseBody의 조합, 모든 메서드에 @ResponseBody가 자동 적용됨 JSON RESTful API 구현 시, 클라이언트와 서버 간 데이터 교환 처리

 

 

RESTful API는 웹 애플리케이션이나 웹 서비스에서 데이터를 효율적이고 일관성 있게 전송하는 방법 중 하나로, REST(Representational State Transfer) 아키텍처 스타일을 따르는 API