• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

DTO의 argument로 Member, Team을 넣는 건 어떻게 보시나요?

23.01.12 18:22 작성 조회수 2.41k

1

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
@Query, 값, DTO 조회하기 강의에서 MemberDto를 아래와 같이 정의하셨는데요.

@Data
public class MemberDto {
    private Long id;
    private String username;
    private String teamName;

    public MemberDto(Long id, String username, String teamName) {
       this.id = id;
       this.username = username;
       this.teamName = teamName;
    }
}

 

제가 일하는 실무현장에서 Dto의 속성은 3개보다 훨씬 많습니다.

이 방식 그대로 Dto 생성자를 정의한다면, argument의 개수가 엄청 많아질텐데요.

그래서 저는 실무에서 아래와 같은 방식으로 생성자를 만들어 사용하고 있습니다.

 

@Data
public class MemberDto {
    private Long id;
    private String username;
    private String teamName;

    public MemberDto(Member member, Team team) {
        this.id = member.getId();
        this.username = member.getUsername();
        this.teamName = team.getName();
    }
}

이런 방식에 대해 어떻게 생각하시나요?

Dto의 필요한 속성이 생성자에 나타나지 않아 유지보수가 떨어지게 될까요?

그것보단 Dto 생성자의 인자수가 너무 많아지는 게 더 안 좋다고 생각해서 위와 같이 생성자를 만들었습니다.

답변 1

답변을 작성해보세요.

2

David님의 프로필

David

2023.01.14

안녕하세요. Roy님, 공식 서포터즈 David입니다.

네, 말씀하신 것처럼 작성하셔도 됩니다.

또한 DTO Assembler 패턴도 있는데 참고해 주세요.

https://coding8282.tistory.com/20

감사합니다.