해결된 질문
작성
·
127
0
실전 data jpa를 완강하고 다시와서 듣는 중인데요
머리속에 정리가 안되는 부분이 있습니다..
예를들어
Member라는 엔터티가 있고
MemberForm이라는 객체를 만들었습니다(뷰템플릿에서 사용자에게 받은 파라미터를 Member로 전환하기 위해)
여기서 제가 정리가 안되는 것은 MemberForm이 Dto의 역활까지 해서 MemberForm 객체를 생성해서 사용 한다면 굳이 MemberDto를 생성, 사용을 안해도 되는 건가요?
즉 서비스계층에서 memberForm을 member로 전환 시켜주는 작업을 한번만 수행하면 되는걸까요?
추가로 서비스계층에서 그 전환과정이 있다면 서비스 계층에서는 Member 엔터티를 노출해도 되는지(Member member= new Member():와 같이) 궁금합니다. 그게 안된다면 Member 엔터티 객체 안에 MemberForm을 매개변수로 받는 생성자를 만들거나 변환메서드를 작성해야하는지 궁금합니다.
감사합니다.
답변 1
1
안녕하세요. asoostale님, 공식 서포터즈 코즈위버입니다.
웹에서는 사용자가 입력한 값은 기본적으로 신뢰하지 않습니다. 개발자의 예상대로, 앱의 의도대로 값을 입력하지 않을 수 있기때문에 항상 검증과정을 거쳐야 합니다. 그래서 이런 검증과정은 Controller 에서 시행하고, 검증이 완료된 경우에만 Service 레이어로 Form 객체를 전달하거나 혹은 Form객체를 DTO로 변환하며 검증과정을 거칠수도 있습니다. 중요한 점은 Service 단으로 넘어온 Form 혹은 DTO 객체는 신뢰하고 사용할수 있어야 합니다.
Service 레벨에서 엔터티를 조회하여 사용, 변경하는 것은 자연스러운 일입니다. 보통 Service 는 Repository 객체를 주입받으며, 이.Repository 에서 엔터티를 조회, 변경 하거나 저장 합니다.
감사합니다.