DTO
- Data Transfer Object
- 데이터를 전달하기 위해 사용하는 객체
- 데이터를 담아서 전달하는 바구니
- 계층 간 데이터를 전달하기 위한 객체
- 데이터 전달용
DTO 특성
- 오직 getter/setter method만 갖는다
- 보내는 쪽에서 setter를 사용해 Data를 DTO에 담아보내고,
- setter Data를 가질 경우 해당 DTO는 가변적인 데이터
- 받는 쪽에서 getter를 사용해 전달받은 DTO로부터 Data를 꺼내는 방식
- 다른 로직을 갖지 않는다
- 순수하게 데이터 전달 만을 위한 객체이기 때문
Entity
- 절대로 요청이나 응답 값을 전달하는 클래스로 사용X
- DB와 매핑되어 있는 핵심 Class이기 때문
- Entity Class를 기준으로 테이블이 생성되고 스키마가 변경됨
View
VO
- Value Object
- 값 그 자체를 표현하는 객체
- 값으로만 비교되는 객체
- 불변객체
- setter 성격의 메서드는 포함하면 안됨
- 생성자를 통해서만 값을 초기화해야함
- 실생활에서의 예
- 지폐는 각각의 고유 번호가 있음
- 만 원짜리 지폐가 고유번호가 달라도 같은 만 원
- 지폐의 고유번호 = 각 객체의 주소
DTO vs VO
참고
[10분 테코톡] 인비의 DTO vs VO