직렬화와 역직렬화하는 과정은 모두 Jackson 내부에 있는 ObjectMapper
가 리플랙션
을 사용하는 것이다.
Request (서버는 역직렬화 수행, 클라이언트 → 서버, JSON → Java Object)
💡 JSON이 아닌 x-www-form-urlencoded 데이터 형식의 request DTO를 받고 싶다면,
@Setter도 추가하자! 혹은 생성자나 생성자+빌더
Response (서버는 직렬화 수행, 서버 → 클라이언트, Java Object → JSON)
Request DTO 생성 시 생성자 인자가 하나일 경우에는 위임이 안된다. (앞서 말한 것들이 적용 X)
이때는 @JsonCreator
를 사용하자.
public class UserDto {
private final String name;
@JsonCreator
public UserDto(String name){
this.name = name;
}
}