반응형
DTO | VO | Entity | |
정의 | Data Transfer Object | Value Object | Entity |
레이어간 데이터 전송용 객체 | 값을 표현하는 객체 | DB 테이블 매핑용 객체 | |
상태 변경 가능 여부 | 가변적 혹은 불변 객체 | 불변 객체 | 가변적 혹은 불변 객체 |
비즈니스로직 포함 가능 여부 | 불가능 | 가능 | 가능 |
DTO
- 계층간 데이터 전달만을 목적으로 사용
- 로직 없이 getter/setter 메서드 만을 사용
- setter없이 생성자를 이용해 초기화 한다면 불변 객체로 사용 가능
VO
- 값을 표현하기 위한 객체
- getter 메서드와 비즈니스 로직 사용 가능
- 서로 다른 이름을 갖는 VO 인스턴스더라도 모든 속성 값이 같다면 두 인스턴스는 같은 객체라고 할 수 있음
= 값 비교를 위해 equals()와 hashcode() 메서드를 오버라이딩하여 반드시 포함
eg) 만원권 두 장이 있다고 할 때, 두 장의 지폐는 같은 10,000원의 값을 가지지만 지폐번호, 즉 식별번호(주소)가 다름
Entity
- DB 테이블을 객체와 Mapping하기 위해 사용
- 응답이나 요청의 값을 전달하는 목적으로 사용 X
- id를 통해 구분
반응형
'Backend' 카테고리의 다른 글
JMeter 부하테스트 (0) | 2025.01.14 |
---|---|
240729 회고 (0) | 2024.07.29 |
application.properties vs application.yml (0) | 2024.02.19 |
H2 Manual (0) | 2024.02.19 |
02/15 (0) | 2024.02.15 |