카테고리 없음
dao, vo, dto, entity 차이
킨글
2022. 8. 10. 22:38
DTO는 가변의 성격을 가진 클래스이며 데이터 전송을 위해 존재한다.(getter / setter)
그에 반해 VO는 그 자체의 의미를 가진 불변 클래스(Read-Only)를 의미한다. (getter만 존재)
DTO는 인스턴스 개념이라면 VO는 리터럴 개념이다.
즉, VO는 특정한 비즈니스 값을 담는 객체이고, DTO는 Layer간의 통신 용도로 오고가는 객체를 말한다.
Entity 클래스는 실제 DataBase의 테이블과 1 : 1 로 매핑 되는 클래스로, DB의 테이블내에 존재하는 컬럼만을 속성(필드)으로 가져야 한다.
Entity 클래스는 상속을 받거나 구현체여서는 안되며, 테이블내에 존재하지 않는 컬럼을 가져서도 안된다.
Entity 클래스는 또는 가장 Core한 클래스라고 부른다.
분류 | DTO | VO | ENTITY |
정의 | 레이어간 데이터 전송용 객체 | 값 표현용 객체 의미 있는 값을 표현 |
DB 테이블 매핑용 |
상태 변경 여부 | 가변객체 생성 후 상태를 변경할 수 있다. |
불변 객체 생성 후 상태 변경이 없다. |
가변객체 생성 후 상태를 변경할 수 있다. |
로직 포함 여부 | 로직을 포함할 수 없다. | 로직을 포함할 수 있다. | 로직을 포함할 수 있다. |