- 클라이언트 측에서 보낸 데이터를 Java 코드에서 사용할 수 있는 오브젝트로 만들어준다.
- Spring Bean Validation을 사용해서 값을 검증할 수 있다.
- 클라이언트가 보내는 HTTP Request Body(JSON 혹은 XML 등)을 Java 오브젝트로 변환시켜준다.
- 스프링에서 제공하는 HttpMessageConverter를 통해서 타입에 맞는 객체로 변환된다.
- Dto가 기본 생성자만 존재하여도 MappingJackson2HttpMessageConverter가 변환을 해주는데, 내부적으로 ObjectMapper를 통해서 JSON 값을 Java 객체로 역직렬화를 진행해준다.
- 단 기본 생성자가 필수이다.
- 또한 데이터 바인딩을 위한 필드명을 알아내기 위해서 getter, setter 중 1가지는 정의되어 있어야 한다. → ObjectMapper는 JSON 오브젝트의 필드를 Java 오브젝트의 필드에 매핑할 때 getter 혹은 setter를 이용해서 매핑하기 때문이다.
- 클라이언트가 보내는 HTTP Parameter를 특정 Java Object에 바인딩(매핑)한다.
- 즉, 쿼리 파라미터나 요청 혹은 본문에 삽입되는 Form 형태의 데이터를 처리한다.
- JSON 형식으로 데이터를 요청한다면 에러가 뜨고 실패한다.
- 데이터 바인딩을 위한 모든 필드에 대한 생성자나 setter 중에 하나가 필요하다.
- 쿼리 파라미터를 바인딩 하기위해서 사용한다.
- 단, 하나의 쿼리 파라미터를 바인딩할 수 있다.