강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

psvm님의 프로필 이미지
psvm

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 등록

[Web 계층] DTO

작성

·

467

0

안녕하세요.

DTO 관려해서 질문 있습니다.

 Item 에 book,album,등등 상속되어 있는 상황에서 공통적으로 사용해야 할 필드가 이름,재고량,금액 이 있는데, Dto 에 공통적인 필드 또한 반복적으로 일일히 다 작성해야 하는것인지 궁금합니다.

SingleTable 전략처럼 Dto에 아이템에 관련된 필드들을 모두 넣었을 때는 유효성 검증이 제대로 이루어지지 안될 거라는 생각을 했습니다.

Dto 객체에는 일일히 다 필드를 다 적는 수밖에 없는것인지 궁금합니다.

퀴즈

61%나 틀려요. 한번 도전해보세요!

회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?

데이터베이스 성능을 최적화하기 위해서

화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서

JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서

코드의 자동 생성 기능을 활용하기 위해서

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. psvm님

DTO도 상속을 사용하면 되지 않을까요^^?

psvm님의 프로필 이미지
psvm
질문자

상속 객체를 붙여서 DTO에 사용을 할지 고민이 되는게 있어 한 번 더 질문드리겠습니다.

상속을 이용해서 DTO에 상속을 받으면 DTO에는 필요하지 않는 부모 메소드 까지 부여 받는데 있어 객체를 생성하고 저장하는 것이 메모리 초기화에 걸리는 시간 측면에서 안좋지 않을까란 생각이 듭니다.

시간적인 측면을  고려해야 할 필요가 없는 것인지 궁금합니다.

그리고 abstract 메소드들은 필히 구현해하 하는데 빈 공간으로만 존재하고 DTO에서는 부모(추상x) 메서드를 쓸 일이 거의 없다고 생각합니다.DTO는 데이터를 전달하는 용도라고 생각해서 개인적으로 빼는게 맞다고 생각합니다. DTO 상속에 대한 정답은 사용하는 면에 따라 다양한 것인지 궁금합니다.

 

김영한님의 프로필 이미지
김영한
지식공유자

부모 DTO와 자식 DTO로 구분해서 사용하고, 당연히 공통 부분만 부모 DTO로 올려야 합니다.

그렇지 않다면 따로따로 사용하시면 됩니다.

메모리 초기화 같은 부분은 성능에 거의 영향이 없기 때문에 고민하지 않으셔도 됩니다^^

감사합니다.

psvm님의 프로필 이미지
psvm

작성한 질문수

질문하기