
이 글에서는 MVC 패턴과 뷰 템플릿을 활용한 스프링 부트 웹 애플리케이션 개발 방법을 다룹니다.
📖 참고 자료 : 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 입문
MVC(Model-View-Controller) 패턴은 웹 애플리케이션에서 클라이언트의 요청을 처리하고 화면을 구성하는 역할을 효과적으로 분리하는 설계 방식입니다.
👉 이러한 역할 분리를 통해 코드의 재사용성, 유지보수성, 확장성을 높일 수 있습니다.
스프링 부트에서는 Mustache를 사용하여 뷰 템플릿을 관리할 수 있습니다.
💡Mustache란?
머스태치(Mustache)는 간결하고 직관적인 문법을 제공하는 뷰 템플릿 엔진으로 스프링 부트에서는 resources/templates 폴더에 위치한 .mustache 파일을 자동으로 로딩합니다.
package com.example.firstproject.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping("/")
public String home(Model model) {
model.addAttribute("message", "Hello, Mustache!");
return "home";
}
}
👉 위 코드는 / 경로로 요청이 들어오면 home.mustache 뷰 템플릿을 반환하도록 설정합니다.
뷰에서 데이터를 표시하려면 컨트롤러에서 Model 객체를 통해 변수를 전달해야 합니다.
모델에서 변수를 등록할 때는 addAttribute() 메서드를 사용합니다.
model.addAttribute("변수명", 변숫값);
👉 예를 들어, model.addAttribute("username", "홍길동"); 라고 설정하면 뷰에서 {{username}}을 사용하여 값을 출력할 수 있습니다.
웹 애플리케이션에서 일관된 디자인을 유지하기 위해 레이아웃을 분리하여 사용합니다.
특히, 헤더(Header)와 푸터(Footer)를 따로 관리하면 코드 재사용성과 유지보수성이 높아집니다.
👉 헤더와 푸터를 템플릿으로 분리하면 한 번의 수정으로 모든 페이지에 적용할 수 있어 개발이 훨씬 편리해집니다!
1) 레이아웃 템플릿 생성
💡 예제: header.mustache 파일을 삽입하는 경우
{{> layouts/header}}
<h1>환영합니다!</h1>
{{> layouts/footer}}