데이터 전송 객체

데이터 전송 객체(, DTO)는 프로세스 간에 데이터를 전달하는 객체이다. 프로세스 간 통신이 일반적으로 원격 인터페이스(예: 웹 서비스)로 재정렬하면서 이루어지게 되는데 여기에서 각 호출의 비용이 많다는 점을 동기로 하여 이용하게 된다. 각 호출의 비용이 큰 것이 클라이언트와 서버 간 왕복 시간과 관련되기 때문에 호출의 수를 줄이기 위해 여러 호출에 의해 전송되는 데이터를 축적하면서 오직 하나의 호출만으로 서비스되는 객체인 DTO를 사용하는 것이다.

데이터 전송 객체와 비즈니스 객체, 데이터 접근 객체 간 차이는 DTO의 경우 스토리지, 그리고 자체 데이터(뮤테이터와 접근자)의 조회를 제외하고 어떠한 동작도 하지 않는다는 점이다. DTO는 테스트에 필요한 어떠한 비즈니스 로직도 포함하지 않아도 되는 단순한 객체이다. 다시 말해 DTO는 비즈니스 로직을 포함할 필요가 없는 단순한 객체이지만 유선상 데이터 전송을 위해 직렬화와 역직렬화 매커니즘을 포함할 수 있다.

용어 
값 객체(value object)는 DTO가 아니다. 두 용어는 과거에 자바 개발자들에 의해 병합되고 있다.

각주

외부 링크 
 Summary from Fowler's book
 Data Transfer Object - Microsoft MSDN Library
 GeDA - generic dto assembler is an open source Java framework for enterprise level solutions
 Local DTO

병행 컴퓨팅
아키텍처 패턴