작성
·
227
0
선생님 아래 코드에서 modelmapper 를 활용해주셨는데 혹시 html에서 name ? 속성으로 넘어오는 값들에 대해서 dto의 필드 이름과 매치하면 자동으로 account 에 매칭되고 그냥 mapper 를 쓸 필요없이
아래문장만 있으면 될거같은데 굳이 mapper 를 통해서 account 객체를 빼준 이유가 있을까요?
account.setPassword(passwordEncoder.encode(account.getPassword()));
답변 1
0
네
그건 역할에 관한 부분이라 보시면 됩니다.
클라이언트로 부터 전달되는 값은 데이터 전송 객체인 DTO 가 받는 역할이고 Account 엔터티는 DB 와의 매핑에 사용되는 역할이라 정한 것입니다.
즉 Account 엔터티가 클라이언트로 부터 전달되는 값을 바로 받는 역할을 하지 않도록 하고 그 역할은 DTO 에 일임하고 이후 DTO 에 저장된 값을 엔터티로 복사해서 이후 처리를 하고 있습니다.
그리고 가능한 한 DTO 와 엔터티는 역할에 맞게 구분해서 작업하는 것이 추천하는 방식이긴 하지만 강제 사항은 아니기 때문에 실행환경에 따라 적절하게 결정하시면 됩니다.