인프런 커뮤니티 질문&답변
Dto 관련 질문
해결된 질문
작성
·
654
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예
[질문 내용]
안녕하세요 DTO 관련해서 질문이 있습니다. Entity를 Controller에서 사용하면 안되어 값을 받을 때 DTO로 받고 이를 Entity로 다시 변환 후 서비스로 값을 넘기더라구요.
- 우리가 저장을 한다고 할 때, 넘어오는 값이 id, pw, name, email, address 등등 해서 많은 값이 넘어오면 이를 DB에 저장을 해줘야 하잖아요. 그러면 DTO를 Entity와 똑같은 필드를 가진 객체로 만들어 사용하는 건가요? 
- 그리고 회원가입도 간편가입, 홈페이지 가입 등 반환되는 값이 다르다고 하셨는데 이런 경우는 하나의 DTO에 모든 필드들을 다 집어넣고 로직마다 필요한 값을 빼서 쓰는 게 나은지 아니면 각각의 로직별로 DTO를 다 만드는 게 나은지 알고 싶습니다. 감사합니다 
2 질문 ex
홈페이지 가입 필요 필드(name, age, date)
간편가입 (id, pw)
이럴 때 하나의 DTO에 5개 필드를 모두 넣은 DTO를 사용하는게 좋은지, 아니면 홈페이지용, 간편용 DTO를 두개 만드는게 나은지에 대한 질문입니다
답변 1
0
안녕하세요. 이병훈님, 공식 서포터즈 y2gcoder입니다.
- 말씀하신 것처럼 저장하는 요청에 대한 DTO가 있다면 저장할 때 엔티티의 모든 값이 필요하다면 엔티티와 같은 필드를 가진 DTO를 생성해줍니다. 반면에 해당 엔티티를 저장할 때 필수값이 id, pw, name, email 이고, address는 저장할 때는 필요없는 필드라면 address만 빼고 DTO를 만들 수도 있습니다. 
- 제 경험으로는 DTO는 용도에 따라 다 따로 만들어주는게 결과적으로 유지보수하기 편했습니다. 예를 들어 저장 요청, 수정 요청이 있고, 해당 요청에 쓰는 DTO를 하나로 사용한다고 해보겠습니다. 처음에는 두 요청에서 사용하는 필드가 똑같아서 하나의 DTO로 사용하고 있었습니다. 그런데 수정요청에 대한 요구사항이 바뀌어 DTO에 대한 수정이 필요하게 되면, 해당 DTO는 저장 요청일 때도 사용하기 때문에 수정 후 저장 요청에 대해서도 여전히 잘 작동하는 지 테스트를 해줘야 합니다. DTO를 각 용도에 따라 따로 사용한다면 수정 요청의 요구사항이 바뀐다면 수정 요청할 때 사용하는 DTO만 체크하시면 됩니다 :) 
감사합니다.







답변 감사합니다!