DTO(Data Transfer Object)는 데이터 전송을 목적으로 하는 객체이다.
주로 애플리케이션의 레이어 간 데이터를 전달하는 데 사용된다.
DTO의 주요 특징은 다음과 같다:
데이터 캡슐화: DTO는 데이터를 캡슐화하여 관련된 필드들을 하나의 객체로 묶는다. 이로 인해 데이터의 전송이 간편해진다.
비즈니스 로직 없음: DTO는 일반적으로 비즈니스 로직을 포함하지 않고, 단순히 데이터 구조를 정의하는 역할을 한다.
성능 향상: 네트워크를 통해 전송할 때 필요한 데이터만 포함시켜 전송량을 줄일 수 있다.
안전성: 클라이언트에게 노출되는 데이터의 형식을 제어할 수 있어, 보안상 민감한 정보를 숨기는 데 도움을 준다.
변환 과정: DTO는 엔티티(Entity)와의 변환 과정이 필요할 수 있다. 예를 들어, 데이터베이스에서 가져온 엔티티를 DTO로 변환해 클라이언트에 전달하고, 클라이언트에서 입력받은 DTO를 다시 엔티티로 변환하여 저장하는 방식이다.
DTO는 주로 REST API, 마이크로서비스 아키텍처 등에서 데이터 전송을 최적화하고 안전하게 하기 위해 널리 사용된다.
서비스의 규모가 커질 때, 코드 및 객체의 재활용성이 높아지고 필요한 데이터만 쏙쏙 골라 사용하기 좋은 응용성 또한 보여준다.