작성
·
302
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
두잇베스트님, 요청받은 DTO의 사용에 대해 질문해주셨군요!
일반적인 경우, 컨트롤러에서 받은 Request DTO는 도메인 객체로 변환한 후, 비즈니스 로직을 처리합니다. 이는 계층 간의 역할을 명확히 구분하여, 각 계층이 자신의 책임에 맞는 작업을 수행하도록 하기 위함입니다. DTO는 주로 계층 간 데이터 교환을 위한 객체로, 비즈니스 로직이 포함된 도메인 모델과 역할이 다릅니다.
반면에, Spring MVC의 DomainClassConverter
를 사용할 경우 컨트롤러에서 도메인 객체를 직접 받고, 이를 모델에 추가하여 사용할 수 있게 되므로, DTO를 굳이 도메인 객체로 변환하지 않아도 됩니다. 주로 간단한 CRUD 작업에서 유용하게 사용할 수 있으며, findById(...)
같은 메소드를 사용하여 필요한 변환을 자동으로 수행해 줍니다. 하지만 복잡한 비즈니스 로직이 도메인에 포함될 경우, 필요한 데이터만을 담은 Request DTO를 통해 도메인 객체를 생성하거나 업데이트하는 것이 좋습니다.
DTO를 도메인에서 파라미터로 직접 받아 사용하는 것은 유효성 검증이나, 단순한 데이터 전달 등의 경우에 적합할 수 있으나, 도메인의 핵심 로직에서는 구분해서 사용하는 것이 좋습니다. 이는 코드의 가독성, 유지보수성 및 도메인 모델의 응집도를 높이는 데 기여합니다.
아래 문서에서 DomainClassConverter
와 관련된 더 많은 정보를 확인하실 수 있습니다:
- Spring Data JDBC - Reference Documentation
- Spring Data JPA - Reference Documentation
도움이 되셨길 바랍니다!