• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

modelmapper 와 service계층에서 리턴값에 대해 질문있습니다

22.07.25 11:09 작성 조회수 257

0

  1. modelmapper의 경우 자주 사용될 것 같은데
    bean으로 등록 해두고 사용하는게 좀 더 유리할까요??

  2. userEntity -> userDto로 변환하여 리턴할때 기존에 파라미터로 받았던 dto값을 그대로 넘겨줘도 될 것 같은데요! 굳이 변환해서 넘겨주는 의도가 어떤것인지 궁금합니다!

답변 1

답변을 작성해보세요.

2

안녕하세요, 이도원입니다. 

ModelMapper는 설명드린것처럼 빈에서 빈으로 복사하는 작업에서 주로 사용되었는데, 빈으로 등록해서 사용하셔도 될 것 같습니다. 다만 다른분의 질문에서도 답변드렸던 것처럼 제가 사용하는 하나의 방법을 소개해 드린것이기 때문에, 작업하시는 분 취향에 맞게 다른 맵퍼를 사용하시거나 직접 Setter를 사용하셔도 됩니다. 

Entity와 DTO, VO는 사용하는 장소와 용도에 따라 구분해서 사용하는게 좋을 것 같습니다. 말씀하신 것처럼 변환작업이 직접 Reqesut의 모든 데이터 또는 하나의 레이어나 서비스에서 사용된 객체를 다른 곳으로 넘길 때도 그대로 넘길수 있지만, 전달하는 쪽과 받는 쪽이 같은 데이터를 사용할수도 있지만, 데이터의 포맷이나 프로퍼티의 이름 사용하지 않는 파라미터의 전달 등이 생길 수 있다고 생각됩니다. 정확하게 같은 데이터를 사용하는 경우라면 같은 값을 사용해도 무방하지만, 다른 경우 특히 사용하지 않는 불필요한 값의 전달 등은 보내지 않는 게 좋다고 생각됩니다. 그렇다고 모든 상황에 다 적용되는 건 아니고, 변환하는 작업이 그대로 보내서 사용되어지는 비용보다 클 경우는 다시 고민해 봐야할 문제인 것 같습니다. 

사용자에게 전달 받고, 보내지는 데이터는 VO 형태, 레이어와 서비스 간의 데이터 이동은 DTO, 데이터베이스의 자료를 나타내는 경우에는 Entity로 구분해서 사용하시면 좋을 듯 합니다.

감사합니다. 

원석나님의 프로필

원석나

질문자

2022.07.27

답변 감사합니다 강사님!