작성
·
79
·
수정됨
0
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
파라미터를 받을 때는 컨트롤러에서 메서드 실행될때 이미 dto로 받는건 알겠는데 dto를 저장하기 전에 엔티티로 바꾸는건 어디서 보통 하는건가요? 컨트롤러인가요 서비스인가요? 그리고 리포지토리에서 받아온 엔티티는 어디서 response용 dto로 바꿔주는 건가요? service에서 처리하고 컨트롤러로 보내는 건가요?
답변 1
1
안녕하세요. 김재원님, 공식 서포터즈 y2gcoder입니다.
해당 부분에서 어느 정도까지 dto를 나누느냐는 사람마다 다를 것 같습니다!
저는 보통 도메인 엔티티 <-> dto의 변환은 애플리케이션 단의 서비스에서 진행하는 것 같습니다 🙂 dto나 따로 만든 매퍼 클래스에서 변환하는 방식을 애용합니다.
그리고 저는 경우에 따라 서비스 dto와 요청/응답 dto를 분리하기도 합니다. 서비스 dto <-> 요청/응답 dto는 컨트롤러 단에서 해주는 것 같습니다. 왜냐하면 컨트롤러는 서비스 단에 의존하고 있기 때문에, 서비스 dto <-> 요청/응답 dto 변환 작업을 서비스 쪽에서 해주게 되면 순환 의존성이 생긴다고 보기 때문입니다 🙂
결론을 말씀드리자면 의존성의 방향을 한쪽으로 둔다는 원칙에 따라 위와 같이 구성하는 것 같습니다!
감사합니다.