spring 은 외부에서 HTTP 요청으로 들어온 JSON 값을 자바 객체로 변환하고 비즈니스 로직을 처리 후 다시 JSON 형식으로 변환한다. 이러한 과정을 spring 3 부터는 jackson 라이브러리가 수행하고 있다. jackson 라이브러리의 실제 동작 과정을 소스 코드를 분석하여 확인해보았다.

@Getter
@RequiredArgsConstructor
@ToString
public class DtoRequest {

    private final String str;
    private final List<String> list;
}

실패

@Getter
@RequiredArgsConstructor
@ToString
public class MyApplicationRequest {

    private String sort;
    private List<String> process;
    private List<String> scheduled;
    private String companyName;
}
@Getter
@AllArgsConstructor
@ToString
public class MyApplicationRequest {

    private String sort;
    private List<String> process;
    private List<String> scheduled;
    private String companyName;
}

성공

@Getter
@RequiredArgsConstructor
@ToString
public class MyApplicationRequest {

    private final String sort;
    private final List<String> process;
    private final List<String> scheduled;
    private final String companyName;
}