-
[Spring] 데이터 바인딩(Data Binding)과 이와 관련된 예외개발 지식/Spring 2023. 11. 20. 15:52
데이터 바인딩
- 데이터 바인딩은 사용자 입력이나 외부 데이터를 애플리케이션의 도메인 모델과 연결하는 프로세스를 말한다.
- 이는 주로 웹 애플리케이션에서 사용자의 HTTP 요청 데이터를 처리하는 데에 사용된다.
cf. 역직렬화
- JSON을 자바 객체로 변환하는 과정인 역직렬화의 경우 데이터 바인딩의 한 예시라고 볼 수 있다.
스프링 프레임워크에서는 데이터 바인딩이 주로 두 가지 상황에서 일어난다.
1. HTTP 요청의 데이터를 객체로 변환
- 사용자가 웹 애플리케이션에 요청을 보낼 때, 이 요청에는 주로 URL 쿼리 파라미터, HTTP 헤더, 본문 등의 데이터가 포함된다. 이러한 데이터를 자바 객체로 변환하는 것이 데이터 바인딩이다.
@RestController public class MyController { @GetMapping("/example") public ResponseEntity<String> exampleMethod(@RequestParam String parameter) { // ... } }
2. 폼 데이터 처리
- 웹 페이지에서 사용자가 입력한 폼 데이터를 서버 측의 객체로 변환하는 과정도 데이터 바인딩에 속한다.
<form action="/submit" method="post"> <input type="text" name="username"> <input type="password" name="password"> <button type="submit">Submit</button> </form>
@Controller public class MyController { @PostMapping("/submit") public ResponseEntity<String> submitForm(@ModelAttribute MyFormObject formObject) { // ... } }
관련 예외
- MethodArgumentNotValidException 은 주로 스프링 프레임워크에서 데이터 바인딩 및 유효성 검사 시에 발생한다.
- 주로 컨트롤러의 메서드에 전달된 인자가 유효성 검사에 실패하거나 바인딩에 실패할 때 발생한다.
public class CreateUserRequest { @NotBlank private String username; // ... }
@RestController public class UserController { @PostMapping("/users") public ResponseEntity<String> createUser(@Valid @RequestBody CreateUserRequest request) { // ... } }
'개발 지식 > Spring' 카테고리의 다른 글
[Spring] build.gradle에 추가하는 라이브러리 공식문서 확인하는 방법 (0) 2023.12.27 [Spring] 필드가 1개인 DTO는 기본 생성자가 없을 시 에러가 발생한다. (0) 2023.12.27 [Spring] DTO 클래스에 기본 생성자가 없을 때 발생하는 에러 해결방법 (0) 2023.11.21 [Spring] @RequestBody와 기본 생성자 (1) 2023.11.21 [Spring] 의존관계 자동 주입(@Autowired) (2) 2023.11.15