제목이 굉장히 장황하다..
- 이 과정에서 "기본생성자"를 사용해 object를 생성하고 -> 그 후에 값을 주입
- field가 public 이거나
- private인 경우 setter or getter 둘 중 하나가 필요함
- 기본생성자는 항상 필수
- 생성자 선택 전략
- com.fasterxml.jackson.databind.deser
.BeanDeserializer -> deserializeFromObject()- 기본 생성자 또는 모든 인자를 받는 생성자(파라미터명을 알 수 있는) : 프로퍼티 생성자를 사용해 객체를 생성 -> Reflection을 이용한 주입
참고링크 : https://velog.io/@appti/RequestBody-%ED%94%BC%EB%93%9C%EB%B0%B1%EC%9D%84-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B3%A0-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EA%B3%BC%EC%A0%951. 기본생성자가 존재하는 경우
- 기본생성자를 사용해 생성 : createUsingDefault
2. 프로퍼티 생성자 : 어떤 생성자 이용할 지 명시하는 방법
- @JsonCreator & @JsonProperty or @ConstructorProperties
- deserializefromObjectUsingNonDefault -> deserializeUsingPropertyBasedProperty 호출

if a member is annotated, it must be either a constructor or a method. If a class is annotated, then a package-private constructor is generated with all fields as arguments (as if @AllArgsConstructor(access = AccessLevel.PACKAGE) is present on the class), and it is as if this constructor has been annotated with @Builder instead. Note that this constructor is only generated if you haven't written any constructors and also haven't added any explicit @XArgsConstructor annotations. In those cases, lombok will assume an all-args constructor is present and generate code that uses it; this means you'd get a compiler error if this constructor is not present.
즉 빌더는 클래스 레벨에 붙은 경우에는 다른 생성자가 없는 경우에만 전체생성자를 자동으로 붙여준다
참고링크
- https://beaniejoy.tistory.com/75
- https://jojoldu.tistory.com/407
https://velog.io/@conatuseus/RequestBody%EC%97%90-%EA%B8%B0%EB%B3%B8-%EC%83%9D%EC%84%B1%EC%9E%90%EB%8A%94-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80- https://velog.io/@conatuseus/RequestBody%EC%97%90-%EC%99%9C-%EA%B8%B0%EB%B3%B8-%EC%83%9D%EC%84%B1%EC%9E%90%EB%8A%94-%ED%95%84%EC%9A%94%ED%95%98%EA%B3%A0-Setter%EB%8A%94-%ED%95%84%EC%9A%94-%EC%97%86%EC%9D%84%EA%B9%8C-3-idnrafiw
- https://velog.io/@shinhyocheol/Lombok-%EA%B3%BC-Jackson-Deserialize-%EA%B4%80%EA%B3%84
- https://findmypiece.tistory.com/104