Skip to content

Latest commit

ย 

History

History
55 lines (42 loc) ยท 1.89 KB

File metadata and controls

55 lines (42 loc) ยท 1.89 KB

1.Rendering

๋ทฐ(View)๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ข…์ ์œผ๋กœ
HTML์ด๋‚˜ ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ 
์‹ค์ œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์งˆ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„

2.Spring Boot Rendering ๊ณผ์ •

2-1.์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜

์ปจํŠธ๋กค๋Ÿฌ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ทฐ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
Spring Boot์—์„œ๋Š” @Controller ๋˜๋Š” @RestController ์• ๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ •์˜
@Controller
public class MyController {

    @GetMapping("/greeting")
    public String greeting(Model model) {
        model.addAttribute("message", "Hello, Spring Boot!");
        return "greeting"; // ๋ทฐ ์ด๋ฆ„
    }
}

2-2.๋ทฐ ๋ฆฌ์กธ๋ฒ„(View Resolver) ํ˜ธ์ถœ

DispatcherServlet์€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ๋ทฐ ์ด๋ฆ„์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ทฐ ๋ฆฌ์กธ๋ฒ„(ViewResolver)๋ฅผ ํ˜ธ์ถœ

2-3.๋ทฐ ๊ฐ์ฒด ์ƒ์„ฑ

๋ทฐ ๋ฆฌ์กธ๋ฒ„๋Š” ๋ทฐ ์ด๋ฆ„์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 
์ด ๊ฐ์ฒด๋Š” JSP, Thymeleaf, FreeMarker ๋“ฑ์œผ๋กœ ์ž‘์„ฑ๋œ ํ…œํ”Œ๋ฆฟ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2-4.๋ชจ๋ธ ๋ฐ์ดํ„ฐ์™€ ๋ทฐ ๋ Œ๋”๋ง

์ƒ์„ฑ๋œ ๋ทฐ ๊ฐ์ฒด๋Š” ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ข… HTML์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, Thymeleaf ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ ํ…œํ”Œ๋ฆฟ์— ์‚ฝ์ž…ํ•˜์—ฌ HTML์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
<!-- src/main/resources/templates/greeting.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Greeting</title>
</head>
<body>
    <h1 th:text="${message}">Hello, Spring Boot!</h1>
</body>
</html>

2-5.ํด๋ผ์ด์–ธํŠธ ์‘๋‹ต

๋ Œ๋”๋ง๋œ HTML์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๋Š” ์ด๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.