Spring MVC란 무엇인가

2024. 5. 21. 03:49Spring MVC

반응형

들어가며

Spring MVC는 Spring Framework 하위의 웹 어플리케이션 프레임워크이며, MVC(Model-View-Controller) 디자인 패턴을 구현하는 데 사용된다.

  • Model 계층은 데이터와 비즈니스 로직을 담당한다.
  • View 계층은 클라이언트 웹 브라우저에 보낼 HTML을 생성한다.
  • Controller 계층은 Model과 View 사이에서 HTTP 요청과 응답을 제어하는 역할을 한다.

Spring MVC의 구성요소

  • DispatcherServlet: Spring MVC 아키텍쳐의 front controller이다. 들어오는 요청을 핸들링하고, 유저에게 반환할 응답을 제어한다.
  • Controller: 요청에 대한 적절한 비즈니스 로직을 매핑하고, 적절한 View를 출력한다.
  • Model: Bean, POJO, Java 객체가 들어 있는 비즈니스 로직
  • View: 클라이언트의 웹 브라우저에 HTML을 전송한다.
  • ViewResolver: View를 로딩하는 템플릿 엔진. JSP나 템플릿 엔진(Thymeleaf 등)이 사용된다.

MVC 패턴의 흐름

  • 모든 요청은 DispatcherServlet이 통제한다.
  • DispatcherServlet은 요청을 매핑된 Controller로 보낸다.
  • Controller는 Model과 View를 리턴한다.
    • View는 html 또는 jsp도 될 수 있다.
  • DispatcherServlet이 view resolver를 통해 특정 요소를 출력한다.

MVC 패턴 구현해보기

의존성 설정 - build.gradle

  • spring-boot-starter-web : Spring MVC의 상위 프레임워크
  • spring-boot-starter-thymeleaf : DispatcherServlet이 리턴한 view를 출력할 템플릿 엔진
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}

Controller 작성 - HelloController.java

  • 메인 페이지 (”/”)를 요청하면 index.html를 반환
@Controller
public class HelloController {
    @GetMapping("/")
    public String display() {
        return "index";
    }
}

View 작성 - index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Spring MVC</title>
</head>
<body>
<p>Hello Spring MVC</p>
</body>
</html>

서버 실행 후 결과 확인

Resources

반응형