DTO vs VO

금은체리·2023년 11월 13일
1

Spring

목록 보기
2/49

DTO

  • Data Transfer Object
  • 데이터를 전달하기 위해 사용하는 객체
  • 데이터를 담아서 전달하는 바구니
  • 계층 간 데이터를 전달하기 위한 객체
  • 데이터 전달용

DTO 특성

  • 오직 getter/setter method만 갖는다
    • 보내는 쪽에서 setter를 사용해 Data를 DTO에 담아보내고,
      • setter Data를 가질 경우 해당 DTO는 가변적인 데이터
    • 받는 쪽에서 getter를 사용해 전달받은 DTO로부터 Data를 꺼내는 방식
  • 다른 로직을 갖지 않는다
    • 순수하게 데이터 전달 만을 위한 객체이기 때문

Entity

  • 절대로 요청이나 응답 값을 전달하는 클래스로 사용X
    • DB와 매핑되어 있는 핵심 Class이기 때문
  • Entity Class를 기준으로 테이블이 생성되고 스키마가 변경됨

View

  • 비즈니스 요구사항에서 자주 변경되는 부분

VO

  • Value Object
  • 값 그 자체를 표현하는 객체
  • 값으로만 비교되는 객체
    • 불변객체
    • setter 성격의 메서드는 포함하면 안됨
    • 생성자를 통해서만 값을 초기화해야함
  • 실생활에서의 예
    • 지폐는 각각의 고유 번호가 있음
    • 만 원짜리 지폐가 고유번호가 달라도 같은 만 원
    • 지폐의 고유번호 = 각 객체의 주소

DTO vs VO


참고

[10분 테코톡] 인비의 DTO vs VO

profile
전 체리 알러지가 있어요!

0개의 댓글