이번 포스팅에서는 Spring Boot를 사용해 간단한 웹 애플리케이션을 만드는 과정을 통해 MVC 패턴의 개념을 이해하고, 실제 예제를 구현하는 방법을 다루었다. 프로젝트 설정, MVC 패턴의 이해, 그리고 뷰 템플릿 엔진 활용까지 차근차근 정리해보았다.
Spring Boot로 웹 애플리케이션을 개발하기 위해 Spring Initializr를 사용하여 프로젝트를 생성했다. Spring Initializr는 필요한 라이브러리를 쉽게 추가하고, 기본 설정이 포함된 프로젝트를 자동으로 생성해주는 유용한 도구다.
프로젝트 생성 시 다음과 같은 의존성을 추가했다:
Spring Boot는 복잡한 설정 없이 빠르게 애플리케이션을 개발할 수 있게 해주는 자바 기반의 프레임워크이다. 특히 웹 애플리케이션을 개발할 때 유용하며, 내장 서버를 통해 애플리케이션을 독립적으로 실행할 수 있다. Spring Boot는 기본 설정을 자동으로 처리해주기 때문에 개발자가 비즈니스 로직에 집중할 수 있도록 도와주었다.
웹 애플리케이션은 클라이언트의 요청을 서버가 받아 처리한 후, 다시 클라이언트에게 응답하는 방식으로 동작한다. 이 과정에서 MVC(Model-View-Controller) 패턴을 사용하면 각 구성 요소의 역할을 명확히 구분하여 코드의 유지보수성을 높일 수 있다.
이러한 구조를 통해 웹 애플리케이션은 더 효율적이고, 관리하기 쉬운 코드로 작성될 수 있었다.
Spring Boot에서 뷰 템플릿을 만드는 데 사용한 도구는 Mustache이다. Mustache는 간단하고 가벼운 템플릿 엔진으로, HTML 파일 내에서 동적인 데이터를 삽입할 수 있게 해준다. Mustache 파일은 .mustache
확장자를 사용하며, 이를 활용하기 위해서는 프로젝트에 관련 플러그인을 설치해야 했다.
Mission: 뷰 템플릿 페이지가 출력되기까지 MVC의 역할과 실행 흐름을 설명하시오.
@GetMapping
어노테이션을 사용하여 특정 URL에 대한 요청을 매핑했다.이러한 MVC의 유기적인 상호작용을 통해, 사용자에게 정확하고 필요한 정보를 제공하는 웹페이지를 만들 수 있었다.
웹 애플리케이션에서 일관된 디자인을 유지하기 위해 레이아웃 템플릿을 사용하는 것이 중요하다. 레이아웃 템플릿은 헤더, 푸터와 같은 공통 요소를 포함하여 여러 페이지에서 재사용할 수 있도록 구성했다. 이번 실습에서는 이러한 레이아웃 템플릿을 생성하고, 화면 요소를 배치하는 방법을 익혔다.
이제 앞서 배운 개념을 바탕으로 간단한 웹 애플리케이션을 구현해보았다. 이 예제에서는 사용자가 이름을 입력하면, 그 이름을 환영하는 메시지를 출력하는 웹페이지를 만들었다.
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class WelcomeController {
@GetMapping("/")
public String index() {
return "index"; // index.mustache를 반환
}
@GetMapping("/welcome")
public String welcome(@RequestParam(name="name", required=false, defaultValue="Guest") String name, Model model) {
model.addAttribute("name", name); // 모델에 이름 속성을 추가
return "welcome"; // welcome.mustache를 반환
}
}
index.mustache
:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Enter your name</h1>
<form action="/welcome" method="get">
<input type="text" name="name" placeholder="Enter your name">
<button type="submit">Submit</button>
</form>
</body>
</html>
welcome.mustache
:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome, {{name}}!</h1>
<a href="/">Go back</a>
</body>
</html>
메인 클래스 DemoApplication.java
를 실행하여 애플리케이션을 시작했다:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
브라우저에서 http://localhost:8080
으로 이동하면 이름을 입력할 수 있는 페이지가 표시된다. 이름을 입력하고 "Submit" 버튼을 누르면, 입력한 이름과 함께 환영 메시지가 출력된다.
이번 포스팅에서는 Spring Boot를 활용해 MVC 패턴을 이해하고, 이를 기반으로 간단한 웹 애플리케이션을 구현하는 방법을 배웠다. 이 예제를 통해 Spring Boot와 MVC 패턴의 기본 개념을 확실히 익힐 수 있었다.