더 이상 사용되지 않습니다. DTO 패턴을 사용해야하는지 여부는 응용 프로그램 아키텍처에 따라 다릅니다. 예를 들어 JAX-WS 또는 JAX-RS를 사용하여 웹 서비스를 개발할 때 C# 또는 Python 클라이언트 응용 프로그램에서 사용할 수 있도록 웹 메소드를 통해 DTO를 보내야하며 웹 메소드는 클래스가 가진 객체를 반환하지 않아야합니다. Hibernate 어노테이션, 다른 언어보다 엔터티가 그 어노테이션이나 다른 비즈니스 로직을 사용하여 생성되지 않는다는 것을 기억하십시오.
EDIT (사용자 의견에 기반 함) : 이는 소프트웨어 아키텍처에 따라 다릅니다. 예를 들어 SOA 프로젝트를 진행하고 있으며 Services Layer 및 Presentation Layer에 DTO를 사용합니다. 더 깊숙한 곳에서는 서비스 내에서 데이터베이스 통신을 처리하기 위해 DTO를 사용하고, DB와의 통신에는 SP 만 사용하므로 Hibernate 나 다른 ORM 도구가 작동하지 않습니다. Spring DAO을 사용할 수 있으며 해당 프레임 워크는 DTO를 사용합니다. 요즘 많은 어플리케이션에서 DTO 패턴을 많이 발견 할 수 있습니다. 이 질문에 대한 좋은 것
상세 정보 :
이
편집 2 : DTO의 디자인을 사용하는 주된 이유를 설명 할 것이다 정보의 또 다른 소스는 Martin Fowler
결론에 의해 설명 : DTO의 아닌 있습니다 안티 패턴. DTO는 하나의 서브 시스템에서 다른 서브 시스템으로 데이터를 전달할 필요가있을 때만 사용하기위한 것이며, 통신을위한 기본 또는 표준 방법이 없습니다.
예 이러한 시나리오에서 나는 DTO의 사용을 이해합니다. 결과를 DTO로 보내고 있습니다. 그러나 내부 응용 프로그램 사용을 위해 DTO는별로 사용하지 않습니다. – Thihara
@Thihara 답변 귀하의 의견을 기반으로 편집 –
첫 번째에 따르면 그것은 엔티티 콩이 직렬화 할 수 없다는 사실을 피하기 위해 사용되는 안티 패턴입니다. 기본 문제가 존재하지 않는 ORM이 있습니다. – Thihara