프로젝트 설정
- Spring Boot 프로젝트에서 Thymeleaf 템플릿 엔진을 사용하려면 필요한 의존성을 추가해야 한다. build.gradle 파일에 다음과 같은 의존성을 추가해보자.
- MySQL을 사용하는 경우 mysql-connector-java도 추가
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
}
데이터 베이스 설정
MySQL을 사용하여 할 일 목록을 관리하기 위한 데이터베이스 설정을 추가한다. application.properties 파일에 추가하면 된다.
spring.datasource.url=jdbc:mysql://localhost:3306/todo_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
=> ddl-auto 설정 주의. create로 설정 시 빌드할 때마다 테이블이 삭제 후 재생성
Todo 엔티티 생성
데이터베이스와의 상호작용을 처리하기 위해 Spring Data JPA의 JpaRepository를 상속받는 레포지토리를 작성.
package com.example.todoapp.entity;
import javax.persistence.*;
@Entity
@Table(name = "todos")
public class Todo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
// Getters and Setters
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
}
TodoService 클래스 생성
비즈니스 로직을 처리하는 TodoService를 작성. 이 클래스는 레포지토리로부터 데이터를 가져온다.
package com.example.todoapp.service;
import com.example.todoapp.entity.Todo;
import com.example.todoapp.repository.TodoRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TodoService {
private final TodoRepository todoRepository;
public TodoService(TodoRepository todoRepository) {
this.todoRepository = todoRepository;
}
public List<Todo> getAllTodos() {
return todoRepository.findAll();
}
}
TodoController 생성
데이터를 Thymeleaf 템플릿으로 전달하는 컨트롤러를 작성.
package com.example.todoapp.controller;
import com.example.todoapp.service.TodoService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TodoController {
private final TodoService todoService;
public TodoController(TodoService todoService) {
this.todoService = todoService;
}
@GetMapping("/todos")
public String getTodos(Model model) {
model.addAttribute("todos", todoService.getAllTodos());
return "index";
}
}
결과 확인

결론
이번 포스팅에서는 Spring Boot와 Thymeleaf를 사용하여 간단한 Todo 리스트를 구현했다. 이제 목록을 클릭했을 때 상세 목록을 조회, 수정, 삭제하는 부분을 구현해보자.
'사이드 프로젝트 > To do list' 카테고리의 다른 글
[Spring project] Spring Boot Todo 리스트 관리: Todo 데이터 수정 및 삭제 처리 (1) | 2024.10.16 |
---|---|
[Spring project] Spring Boot Todo 리스트 관리: 삭제 기능 구현 및 Task 입력 기능 (0) | 2024.10.13 |
[Spring project] Task 리스트 조회, 입력 (1) | 2024.10.06 |
[Spring project] 테이블 설계 (0) | 2024.08.03 |
[Spring project] 비즈니스 요구사항 정리 (0) | 2024.07.27 |