[java] Thymeleaf에서 데이터 유효성 검사(validation)를 어떻게 수행하나요?
  1. 클라이언트 측 유효성 검사: HTML5의 유효성 검사 기능을 활용하여 클라이언트 측에서 간단한 유효성 검사를 수행할 수 있습니다. 이는 개발자 측에서 입력 필드에 대한 유효성 검사 규칙을 설정해두면, 사용자가 입력한 데이터가 자동으로 검증되는 것을 의미합니다. Thymeleaf는 HTML5를 지원하므로, <input> 요소의 required, pattern 등의 속성을 사용하여 유효성 검사 규칙을 정의할 수 있습니다. 예를 들어, 이메일 주소 형식의 입력 필드에 대한 유효성 검사를 하는 Thymeleaf 코드는 다음과 같습니다.
<input type="email" th:field="*{email}" required />
  1. 서버 측 유효성 검사: 클라이언트 측 유효성 검사만으로는 충분하지 않을 경우, 서버 측에서 추가적인 유효성 검사를 수행할 수 있습니다. 이를 위해 Thymeleaf는 Spring FrameworkValidation API를 활용합니다. Spring Framework의 Validation API는 자바 빈(Java Bean)을 통해 데이터 모델의 유효성 검사를 수행할 수 있는 방법을 제공합니다. Thymeleaf와 Spring Framework를 함께 사용하는 경우, 데이터 모델에 유효성 검사 규칙을 추가하고, 컨트롤러에서 유효성 검사를 수행한 후, 검증 결과를 Thymeleaf 템플릿으로 전달할 수 있습니다. 예를 들어, 이메일 주소 필드에 대한 서버 측 유효성 검사를 하는 Thymeleaf와 Spring Framework 코드는 다음과 같습니다.
<input type="text" th:field="*{email}" />

<span th:if="${#fields.hasErrors('email')}" th:errors="*{email}"></span>
import javax.validation.constraints.Email;
import javax.validation.constraints.NotEmpty;

public class User {
    @NotEmpty
    @Email
    private String email;

    // Getters and setters
}

@Controller
public class UserController {
    @PostMapping("/user")
    public String createUser(@Validated @ModelAttribute User user, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            // 유효성 검사 실패 처리
        }

        // 유효성 검사 통과 처리

        return "redirect:/success";
    }
}

위 코드에서 Thymeleaf의 th:field 속성은 데이터 모델과 입력 필드를 연결하고, th:ifth:errors는 유효성 검사 실패 시 에러 메시지를 표시합니다. 컨트롤러에서는 @Validated 어노테이션을 사용하여 유효성 검사를 요청하고, BindingResult 객체를 통해 검증 결과를 확인할 수 있습니다.

Thymeleaf에서 데이터 유효성 검사를 수행하는 방법에 대해 간략히 설명했으며, 실제로는 더 다양한 방법과 기능을 사용할 수 있습니다. 자세한 내용은 Thymeleaf와 Spring Framework의 공식 문서를 참조하시기 바랍니다.