Entity란
고유 ID가 있고 mutable한 객체
DB 테이블과 매핑되는 클래스이다.
가변 객체로 활용할 수 있다.
로직을 포함할 수 있다.
DTO(Data Transfer Object)란
DTO는 데이터를 전달하기 위한 객체
가변이나 불변으로 활용할 수 있다.
Controller와 View 사이에 존재한다.
로직을 포함할 수 없다.
VO(Value Object)란
VO는 값 자체를 표현하는 객체
Immutable하다.
말 그대로 값을 표현하기 때문에 상태 변경이 필요가 없다.
값 비교를 위해선 equals와 hashCode를 재정의해야 한다.
로직을 포함할 수 있다.

Entity, DTO의 구분 이유
DB단에서의 데이터와 View 데이터의 역할의 분리를 위해 구분한다.
Entity는 실제 중요한 데이터가 모여있기에 변경되면 영향을 미치지만 DTO는 영향이 없고 View에서 요구되는 사항에 맞춰 전달해야 되기 때문에 구분해야한다.
'스프링 부트' 카테고리의 다른 글
[인텔리제이] tdd 템플릿 만들기 (0) | 2022.04.11 |
---|---|
[스프링] 빈 등록 Bean, Configuraition, Component 비교 (0) | 2022.04.06 |
[스프링부트] MongoDB로 CRUD 실습해보기 (0) | 2022.03.02 |
[스프링부트] javax.persistence와 org.springframework.data.annotation의 차이 (0) | 2022.03.02 |
스프링 시큐리티 인증 필터 처리 (0) | 2022.02.19 |
댓글