테코톡 정리 - DTO / VO

UkJJang·2021년 11월 8일
0

https://www.youtube.com/watch?v=EeJnNaiMy3U&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=174 영상을 보며 정리하였습니다.

DTO(Data Transfer Object)

  • 레이어 간 데이터를 전달하는 객체 (바구니 같은 개념)

DTO 특징

  • 데이터 접근 메서드 외에 기능을 가지지 않는다.
    • 정렬, 직렬화 등 데이터 표현을 위한 기능은 가질 수 있다.
  • 데이터의 캡슐화를 통해 유연한 대응이 가능하다.
    • 데이터 요청 수 감소 효과

VO(Value Object)

  • 값을 가지는 객체 즉 값 자체로 의미를 가지는 객체
  • 변하지 않는 값을 가지는 객체
    • 값이 변하지 않음을 보장하며 코드의 안정성과 생산성을 높인다.
  • 값이 같다면 동일한 객체
    • 각 객체를 비교하는 데 사용되는 ID가 있다.
    • 같은 객체인지 판단하기 위해 각 속성들의 값을 비교한다.

공통점

  • 레이어간 데이터를 전달할 때 사용이 가능하다
    • VO는 불변을 보장하기 때문에 전달하는 용도로 사용이 가능하다.

차이점

  • DTO는 값이 변할 수 있지만 VO는 변하지 않는다.
  • DTO는 레이어와 레이어 사이에 사용하지만 VO는 모든 레이어에서 사용이 가능하다.
  • DTO는 데이터 접근 이외에 기능을 가지지 않지만 VO는 특정한 비즈니스 로직을 가질 수 있다.
  • DTO는 dto1(1) != dto2(1) VO는 vo1(1) == vo2(1)
profile
꾸준하게 성실하게

0개의 댓글