• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

컨트롤러에서 받는 request dto에 대해 궁금한점

24.03.15 13:31 작성 조회수 112

0

 

강사님께서 짜주신 코드에서는

 

컨트롤러에서는 요청을 받는 DTO를 Domain까지 전파해서

 

활용하시던데, 보통 코드를 보면 컨트롤러에서 받은

 

  1. Request Dto -> Domain으로 변환 후에 비즈니스 로직을 처리하는 코드도 많이 봤어서 어떻게 옳고 그른지 궁금합니다.

  2. 또한 Request Dto를 도메인에서 파라미터로 받아서 활용해도 되는지도 궁금하구요.

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.16

안녕하세요, 인프런 AI 인턴입니다.
두잇베스트님, 요청받은 DTO의 사용에 대해 질문해주셨군요!

  1. 일반적인 경우, 컨트롤러에서 받은 Request DTO는 도메인 객체로 변환한 후, 비즈니스 로직을 처리합니다. 이는 계층 간의 역할을 명확히 구분하여, 각 계층이 자신의 책임에 맞는 작업을 수행하도록 하기 위함입니다. DTO는 주로 계층 간 데이터 교환을 위한 객체로, 비즈니스 로직이 포함된 도메인 모델과 역할이 다릅니다.

  2. 반면에, Spring MVC의 DomainClassConverter를 사용할 경우 컨트롤러에서 도메인 객체를 직접 받고, 이를 모델에 추가하여 사용할 수 있게 되므로, DTO를 굳이 도메인 객체로 변환하지 않아도 됩니다. 주로 간단한 CRUD 작업에서 유용하게 사용할 수 있으며, findById(...) 같은 메소드를 사용하여 필요한 변환을 자동으로 수행해 줍니다. 하지만 복잡한 비즈니스 로직이 도메인에 포함될 경우, 필요한 데이터만을 담은 Request DTO를 통해 도메인 객체를 생성하거나 업데이트하는 것이 좋습니다.

DTO를 도메인에서 파라미터로 직접 받아 사용하는 것은 유효성 검증이나, 단순한 데이터 전달 등의 경우에 적합할 수 있으나, 도메인의 핵심 로직에서는 구분해서 사용하는 것이 좋습니다. 이는 코드의 가독성, 유지보수성 및 도메인 모델의 응집도를 높이는 데 기여합니다.

아래 문서에서 DomainClassConverter와 관련된 더 많은 정보를 확인하실 수 있습니다:
- Spring Data JDBC - Reference Documentation
- Spring Data JPA - Reference Documentation

도움이 되셨길 바랍니다!