DTO 패턴이란?

날아올라돼지야·2024년 8월 18일
0

갑자기 DTO는 왜?

만약 클라이언트가 계정 정보와 고객 정보를 한 번에 요청한다면, 두 개의 서로 다른 엔티티 객체를 따로 보내는 대신, DTO 패턴을 사용하여 하나의 객체로 만들어 전달하는 것이 좋습니다.
DTO 패턴은 애플리케이션의 여러 레이어 간 데이터 전송을 위한 디자인 패턴입니다. 데이터베이스, 프레젠테이션 레이어, 서비스 레이어 등 다양한 레이어 간에 데이터를 전송할 때 이 패턴을 사용하여 DTO 클래스를 만들어 데이터를 주고받습니다.

DTO 패턴의 필요성과 장점

  • 엔티티와 DTO의 분리: 엔티티 클래스는 데이터베이스 테이블을 직접적으로 나타내므로 이를 직접 클라이언트에 노출시키는 것은 좋지 않습니다. 대신 DTO 클래스를 만들어 엔티티의 데이터만을 클라이언트에 전달합니다.
  • 네트워크 트래픽 감소: DTO 패턴을 사용하면 클라이언트가 여러 요청을 보내는 대신, 한 번의 요청으로 필요한 데이터를 모두 받을 수 있어 네트워크 트래픽을 줄일 수 있습니다.
  • 캡슐화된 직렬화: DTO 클래스는 데이터만을 담고 있으며, 이 데이터를 XML, JSON, YAML 등의 포맷으로 직렬화하는 로직을 포함할 수 있습니다. 이를 통해 다양한 직렬화 요구사항을 쉽게 처리할 수 있습니다.
  • 레이어 간 디커플링: DTO 패턴은 프레젠테이션 레이어와 데이터 액세스 레이어를 분리시킵니다. 데이터베이스 구조나 엔티티가 변경되어도 클라이언트는 DTO만을 사용하므로 영향을 받지 않습니다.

DTO 패턴 구현

DTO 패턴을 구현하기 위해 각 데이터베이스 엔티티에 대응하는 DTO 클래스를 생성합니다. 예를 들어, Customer와 Account 엔티티를 합쳐 CustomerDetails라는 DTO 클래스를 만들 수 있습니다. 이 DTO 클래스는 클라이언트가 요청한 데이터를 통합하여 전달합니다.
또한, DTO 클래스에는 데이터 직렬화 로직을 포함하여 클라이언트가 요구하는 포맷으로 데이터를 변환할 수 있습니다.

profile
무슨 생각하며 사니

0개의 댓글