JPA다루기 (5) DTO

김진태·2021년 6월 26일
2

SpringBoot

목록 보기
4/8
post-thumbnail

DTO(Data Transfer Object) 란?

등장배경

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

특징

  • 로직을 갖고 있지 않는 순수한 데이터 객체이며, getter/setter 메서드만을 갖는다.
    하지만 DB에서 꺼낸 값을 임의로 변경할 필요가 없기 때문에 DTO클래스에는 setter가 없다.
    (대신 생성자에서 값을 할당한다.)

  • Request와 Response용 DTO는 View를 위한 클래스
    - 자주 변경이 필요한 클래스
    - Presentation Model
    - toEntity() 메서드를 통해서 DTO에서 필요한 부분을 이용하여 Entity로 만든다.
    - Controller Layer에서 Response DTO 형태로 Client에 전달한다.

  • 참고 VO(Value Object) vs DTO
    VO는 DTO와 동일한 개념이지만 read only 속성을 갖는다.
    VO는 특정한 비즈니스 값을 담는 객체이고, DTO는 Layer간의 통신 용도로 오고가는 객체를 말한다.

롬북에서 배웠다!

@Setter,@Getter,@RequiredArgsConstructor를 통해 아무것도 만들지 않아도 된다!

profile
안녕!

0개의 댓글