바인딩 (Binding)
Spring Binding은 클라이언트 요청 데이터와 서버의 Java 객체 간의 자동 매핑을 제공하는 Spring MVC의 핵심 기능 중 하나입니다.
HTML 폼에서 입력한 데이터를 Java 객체로 변환하거나, 반대로 Java 객체의 데이터를 HTML 폼에 표시할 때 사용됩니다.
이를 통해 개발자는 데이터를 수작업으로 변환하는 번거로움을 줄이고, 간결하고 가독성 높은 코드를 작성할 수 있습니다.
예를 들어, 사용자가 웹 페이지에서 폼을 작성해 제출하면, 서버는 이 데이터를 Java 객체로 변환하여 처리하게 됩니다. Spring Binding은 이 과정을 자동화합니다.
동작 원리
Spring Binding은 다음과 같은 과정을 통해 데이터를 Java 객체와 연결합니다.
- 클라이언트 요청 수신
- 사용자가 HTML 폼에서 입력한 데이터가 서버로 전송됩니다.
- ex. username=AnnKim&email=ann.kim@example.com
- 데이터 매핑
- 요청 데이터의 키(name 속성)가 Java 객체의 필드 이름과 일치하면 해당 필드에 값이 자동으로 설정됩니다.
- 유효성 검증
- 데이터 매핑 과정에서 Spring Validator 또는 Hibernate Validator를 통해 입력값이 유효한지 검사합니다.
- 객체 전달
- 컨트롤러 메서드에 매핑된 객체로 데이터가 전달되며, 개발자는 이를 활용하여 필요한 작업(저장, 처리 등)을 수행합니다.
예시
컨트롤러는 Spring Binding의 중심 역할을 합니다.
@Valid와 BindingResult를 사용하여 유효성 검증과 에러 처리를 수행합니다.
ex. 컨트롤러
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import jakarta.validation.Valid;
@Controller
public class UserController {
@PostMapping("/user/register")
public String registerUser(@Valid User user, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
model.addAttribute("errors", bindingResult.getAllErrors());
return "user_form"; // 유효성 검증 실패 시 다시 폼 렌더링
}
// 유효성 검증 성공 시 처리 로직
System.out.println("Username: " + user.getUsername());
System.out.println("Email: " + user.getEmail());
return "redirect:/user/success";
}
}
- @Valid 어노테이션은 이 객체에 대해 유효성 검증(Validation)을 수행하도록 지시합니다.
- BindingResult : @Valid 어노테이션과 함께 사용되며, 유효성 검증 결과를 저장합니다. 에러가 발생했는지 확인할 수 있습니다.
'Java Framework > Spring' 카테고리의 다른 글
[Spring] Bean (1) | 2025.02.12 |
---|---|
[Spring] 페이징 (Paiging) 주요 메서드 (0) | 2025.02.10 |
[Spring] Validation Library 데이터 유효성 검사 (0) | 2025.02.08 |
[Spring] HTTP Method (0) | 2025.02.07 |
[Spring] @Autowired (1) | 2025.02.02 |