본문 바로가기
GD's IT Lectures : 기초부터 시리즈/스프링부트(Spring Boot) 기초부터 ~

[스프링 부트(SpringBoot)] 웹 개발 기초

by GDNGY 2023. 5. 3.

5. 웹 개발 기초

5.1. 스프링 MVC 소개

스프링 MVC는 스프링 프레임워크에서 웹 애플리케이션을 개발하기 위한 모듈입니다. Model-View-Controller(MVC) 패턴을 따르며, 이를 통해 개발자는 웹 애플리케이션의 구성 요소를 명확하게 구분할 수 있습니다. 스프링 부트는 스프링 MVC를 쉽게 사용할 수 있는 자동 구성을 제공합니다.

 

5.2. 컨트롤러와 뷰

컨트롤러는 사용자의 요청을 처리하고 적절한 응답을 생성하는 역할을 합니다. 스프링 MVC에서 컨트롤러는 @Controller 어노테이션을 사용하여 선언하며, 요청을 처리하는 메서드에는 @RequestMapping 또는 @GetMapping, @PostMapping 등의 어노테이션을 사용합니다.

 

예를 들어, 다음 코드는 "Hello, Spring Boot!" 메시지를 반환하는 컨트롤러를 생성합니다.

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, Spring Boot!");
        return "hello";
    }
}

 

뷰는 사용자에게 보이는 화면을 담당합니다. 스프링 MVC에서 뷰는 JSP, Thymeleaf, FreeMarker 등 다양한 템플릿 엔진을 사용할 수 있습니다. 스프링 부트는 Thymeleaf를 기본적으로 지원하며, 의존성을 추가하면 사용할 수 있습니다.

 

예를 들어, 위의 컨트롤러에서 반환한 hello는 Thymeleaf 템플릿인 hello.html 파일과 매핑됩니다.

 

5.3. 폼 데이터 처리

스프링 MVC는 웹 폼 데이터 처리를 위한 기능을 제공합니다. 예를 들어, 사용자가 작성한 게시물을 저장하는 폼 처리를 다음과 같이 구현할 수 있습니다.

 

먼저 게시물 엔티티를 생성합니다.

public class Post {
    private Long id;
    private String title;
    private String content;

    // 생성자, getter, setter 등
}

 

그리고 게시물 작성 폼을 처리하는 컨트롤러를 작성합니다.

@Controller
public class PostController {

    @GetMapping("/post/new")
    public String newPost(Model model) {
        model.addAttribute("post", new Post());
        return "post/new";
    }

    @PostMapping("/post")
    public String savePost(@ModelAttribute Post post) {
        // 저장 로직 구현
        return "redirect:/posts";
    }
}

 

이렇게 구현된 컨트롤러는 /post/new 경로에서 게시물 작성 폼을 보여주고, 폼을 전송하면 /post 경로로 POST 요청을 받아 게시물을 저장합니다.

 

마지막으로 Thymeleaf 템플릿을 사용하여 게시물 작성 폼을 구현합니다.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>New Post</title>
</head>
<body>
    <h1>New Post</h1>
    <form th:action="@{/post}" th:object="${post}" method="post">
        <div>
            <label for="title">Title:</label>
            <input type="text" id="title" th:field="*{title}" />
        </div>
        <div>
            <label for="content">Content:</label>
            <textarea id="content" th:field="*{content}"></textarea>
        </div>
        <button type="submit">Save</button>
    </form>
</body>
</html>

 

이상으로 스프링 부트를 사용한 웹 개발 기초에 대해 알아보았습니다. 다음 섹션에서는 RESTful API 개발 기초에 대해 알아보겠습니다.

 

 

2023.05.03 - [프로그래밍/스프링부트(Spring Boot) 기초부터 ~] - [스프링 부트(SpringBoot)] 데이터베이스 연동 기초

 

[스프링 부트(SpringBoot)] 데이터베이스 연동 기초

4. 데이터베이스 연동 기초 4.1. JDBC 연동 스프링 부트는 데이터베이스 연동을 위해 JDBC(Java Database Connectivity)를 사용할 수 있습니다. JDBC는 자바 애플리케이션에서 데이터베이스에 접근하고 데이

gdngy.tistory.com

 

 

반응형

댓글