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

창현님의 프로필 이미지
창현

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 등록

굳이 DTO를 join하지 않고 Member 객체를 만들어서 저장 후 넣는 이유

작성

·

670

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
제목처럼 form이 DTO의 역할을 하는 것인데 굳이 도메인인 멤버 객체를 생성해서 setName하고 join에 넣는 이유가 궁금합니다. 사실 form에서 넘어온 데이터를 바로 join에 넣으면 새로운 객체를 만들지 않아도 되서 큰 자원은 아니지만 낭비하지 않을 수 있지 않나요?..! 저렇게 사용하는 이유에 대해서 고민해보았는데 DTO의 역할은 단순하게 데이터의 전달 역할만 하는 것이기 때문에 그 역할을 지키기 위해 영상에 나온 것과 같이 사용하는 것일까요?!

답변 1

0

안녕하세요, 창현 님! 공식 서포터즈 codesweaver 입니다.

DTO 에서 엔터티로 변환하는 과정이 번거로운 일인건 사실입니다. 실무를 진행하다 보면 Form 항목과 엔터티 속성이 1:1로 매칭하지 않는 경우가 많고, 또 사용자가 입력한 폼 항목 값을 그대로 사용할 수 없는 경우가 많습니다.

결론적으로 Form DTO를 그대로 리포지토리 까지 보내는 일은 위험하기도 하고 오류가 날 가능성이 높습니다.

감사합니다.

창현님의 프로필 이미지
창현

작성한 질문수

질문하기