728x90
📌 DTO란?
- Data Transter Object
- 순수하게 데이터를 담아 계층간으로 전달하는 객체
- 데이터 전달 용도로만 사용하기 때문에 Getter, Setter로직만 필요하며 다른 로직이 필요하지 않다.
- 필드값이 같아도 같은 객체로 보지 않는다.
- 값의 변조를 막고 싶다면 생성자를 통해 불변 객체로 만든다.
📌 VO란?
- Value Object
- 값 자체를 나타내는 객체 Read Only 특징을 가진다.
- 다른 이름을 갖는 VO 인스턴스라도 모든 속성 값이 같다면 두 인스턴스는 같은 객체로 본다.
이로 인해 주소값을 비교하는 경우 hashcode()와 equals()를 재 정의하여 필드값이 같다면 같은 객체로 인식 될 수 있도록 해 준다.
- Getter, Setter이외의 로직이 있어도 상관없다.
📌 DTO와 VO의 차이점
- DTO는 데이터 계층관 교환에 의미가 있고, VO는 데이터 그 자체에 의미를 두고 있다.
( 즉, VO는 Setter가 없다. )
💌 Reference
- https://maenco.tistory.com/entry/Java-DTO%EC%99%80-VO%EC%9D%98-%EC%B0%A8%EC%9D%B4
- https://kbwplace.tistory.com/162
728x90
'스터디 > 테크톡' 카테고리의 다른 글
[테크 톡 - 16주차] TCP/IP (1) | 2023.10.10 |
---|---|
[테크 톡 - 15주차] Enum (0) | 2023.09.13 |
[테크 톡 - 13주차] Git의 브랜치 전략 (0) | 2023.08.25 |
[테크 톡 - 12주차] 단위테스트 (0) | 2023.08.20 |
[테크 톡 - 11주차] Spring & Spring Boot (0) | 2023.08.10 |