[Spring] DTO Inner Class 내부클래스 활용과 Over-Fetching

동민·2021년 11월 11일
0

1. Over-Fetching

  • DTO 내 필드가 필요보다 더 많아 불필요한 필드까지 Return 하는 경우

DATA

[name: 'kim', age: 27]

DTO

public class OOODTO {
     private String name;
     private Integer age;
     private String address;
     private String option;
}

JSON

{
     name: 'kim',
     age: 27,
     address: null,
     option: null
}

2. Under-Fetching

  • DTO 내 필드가 필요보다 더 적어 Return을 제대로 하지 못하는 경우

DATA

[name: 'kim', age: 27, address: '서울 방배', option: 'A']
public class OOODTO {
     private String name;
     private Integer age;
}
{
     name: 'kim',
     age: 27
}
  • 데이터가 필드안에 다 못들어감

따라서 DTO는 내부 클래스 Inner Class 를 적절히 활용하기!

public class Info {

    @Builder
    @Getter
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class CardInfo implements Serializable {
        private static final long serialVersionUID = -XXXL;

        private String cardName;
        private Integer cardCode;
    }

    @Builder
    @Getter
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class LastestPay implements Serializable {
        private static final long serialVersionUID = -XXXL;

        private Boolean isRecentCard;
        private MyLatestPayInfo myLatestPayInfo;
    }

    @Builder
    @Getter
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Response implements Serializable {
        private static final long serialVersionUID = XXXL;

        private CardInfo cardInfo;
        private LastestPay lastestPay;
    }
    
    @Builder
    @Getter
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Request implements Serializable {
        private static final long serialVersionUID = XXXL;

        private Parameter param;
    }
}
profile
BE Developer

0개의 댓글