본문 바로가기
Spring

DTO vs VO vs Entity

by 루에 2022. 7. 2.
반응형

DTO (Data Transfer Object)

View와 Controller 사이에서 데이터 전송에 사용되는 객체. Setter와 Getter를 가지며 비즈니스 로직은 넣지 않는다.

 

VO (Value Object)

주소값이 아닌 실제 들어있는 값만 비교한다. 가령 Money라는 속성이 같은 10000원이라면, 돈의 발행번호가 서로 다르더라도 같다고 판단한다. equals()와 hashcode() 를 오버라이드 해야한다. 하지 않으면 에러 발생한다. Getter만 있고 Setter는 가지지 않는다.(생성자에서 값 할당)

 

Entity

실제 DB 테이블과 값이 매핑되는 클래스이다. 이를 기준으로 테이블이 생성되고 스키마가 변경된다. 따라서 절대로 Entity를 값을 요청하거나 응답하는 클래스로 사용해서는 안된다. Entity는 id로 구분된다. 비즈니스 로직을 가질 수 있다.

 

참조 및 인용

https://tecoble.techcourse.co.kr/post/2021-05-16-dto-vs-vo-vs-entity/

반응형

댓글