Study Record
Entity, VO, DTO의 차이점
고고잉93
2024. 1. 24. 03:30
728x90
각 클래스에 대하여 용어를 정리하고 정확하게 구분하여 사용해보자
Entity
// RDB(Relational DataBase, 관계형 데이터베이스)에서의 Entity(개체)란, 현실세계에서의 개체를 표현하기 위한 유형, 무형의 실체로써, Entity를 표현하기 위해서 테이블을 생성한다.
- - Entity는 DB 테이블내에 존재하는 컬럼만을 속성(필드)로 가지는 클래스. id(pk)를 통하여 구분한다.
** 무분별한 @Setter사용 지양
- Setter 메서드는 update기능도 수행하기 때문에 사용의도를 파악하기 어렵다.
- public으로 작성된 Setter메서드를통해 어디서든 접근이 가능하게 되어 의도치않은 변경이 발생할 수 있다.
* @Setter를 대체하는 법
- @Builder를 통하여 객체값 세팅
---- 추후 작성
VO(Value Object)
- VO는 값 그자체를 나타내는 객체
** 불변성을 가질 수 없다.
- Setter같은 데이터값의 변경의 여지가 있는 메서드가 있을수 없다.
- 내부에 선언된 속성(필드)의 값들이 같다면 모두 같은 객체이다.
==> equals, hashcode의 @Override가 필요.
DTO(Data Transfer Object)
- 계층간 데이터를 전달하는 객체 ( View - Controller - Service )
** Getter, Setter를 가지며 오직 데이터를 전달하기 위하여 사용.
728x90