Web/Spring

[Spring] 웹 개발을 하는 세 가지 방법(2) : MVC와 템플릿 엔진

728x90

웹 개발의 세 가지 방법

1. 정적 컨텐츠 👈

2. MVC와 템플릿 엔진 👈

3. API

 

 

MVC와 템플릿 엔진

 

MVC : Model, View, Controller

과거 JSP 모델 1 방식에서는 View와 Controller가 구분되어 있지 않고, View에서 모든 역할을 다 수행했다

 

View는 화면을 그리는 데 모든 역량을 집중해야 한다

Controller는 비즈니스 로직, 내부적인 처리를 한 후, 화면에서 필요한 것을 모델에 담아 화면 쪽에 넘겨준다

 

 

 

 

> 실행해보기

controller 동작에 대해 살펴봅니다

1. HelloController 파일에 다음과 같은 내용을 추가

    @GetMapping("hello-mvc")
    public String helloMVC(@RequestParam("name") String name, Model model) {
        model.addAttribute("name", name);
        return "hello-template";
    }

 

 

 

2. hello-template.html 템플릿 추가

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}" >hello! empty</p>
</body>
</html>

 

 

💡 thymleaf의 장점 : 다음과 같이 경로를 복사하여 서버 없이도 html 파일을 직접 열어보고 소스도 확인할 수 있다

 

 

 

3-1. 프로젝트 실행 후, localhost:8080/hello-mvc

오류 발생...!

로그를 확인해봅시다

name 파라미터가 없어서 발생한 오류네요

 

 

 

3-2. 주소 뒤에 ?와 함께 파라미터를 넘겨줍니다 (HTTP Get 방식)

name = spring!!!!!이 넘어가서 ⭐정상적으로 화면 출력⭐됩니다

 

 

 

 

> 동작 설명

- hello controller의 매핑된 메서드를 호출

- viewResolver가 동작 : 뷰를 찾고 템플릿 엔진과 연결하는 역할 수행, templates/에서 템플릿을 찾아서 Thymeleaf 템플릿 엔진에 넘긴다

- 템플릿엔진이 랜더링하고 변환한 HTML을 웹 브라우저에 반환

 

 

 

 

 

 

 

 

 

이 포스팅은 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 듣고 공부한 내용을 정리한 것입니다

 

 

728x90