해결된 질문
작성
·
2.5K
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
안녕하세요. Roy님, 공식 서포터즈 David입니다.
네, 말씀하신 것처럼 작성하셔도 됩니다.
또한 DTO Assembler 패턴도 있는데 참고해 주세요.
https://coding8282.tistory.com/20
감사합니다.