- VO , DTO
- VO : 데이터 그 자체로 의미 있는 것들
- DTO : 전송되는 데이터의 컨테이너
| VO (Value Object) | DTO (Data Transfer Object) |
| VO는 변하지 않는 데이터 객체를 의미. | DTO 는 데이터를 담는 그릇. |
| 사용 되는 값이 객체로 표현 되어지는 경우에 사용. 값의 변경 없음 | 데이터의 전송을 위한 객체, 과거에는 값을 전달하는 데만 사용되었지만 현재는 비지니스 로직 등을 가지고 있는 경우가 많음. |
| VO는 클라이언트와 밀접한 관계 | DTO는 Database 와 관계 |
| VO를 조회때 사용하는 이유는 VO 에 들어있는 값이 Database 에 저장되어 있는 값을 조작하는데 사용되고 있지는 않기 때문. | |
| (조회하는데 필요한 조건으로 사용되는 값일뿐 그 값이 DB 테이블에 반영되는 것은 아님) | DTO의 경우는 실제 DB에 반영되는데 사용되는 값이기 때문에 insert, delete, update 에 사용 |
| 클라이언트에 값을 전달해야 할 구조가 상황에 따라 다름. | DTO는 흔히 테이블 구조와 거의 동일한 설계로 가기 때문에 변하지 않음. |
| 어떤 화면에서는 VO에 있는 값을 json으로 변환해서 전달해야 하는 경우 - key 이름을 다르게 해야하는 한다거나 , 약속된 json구조에 맞춰야 하기 때문에 DTO와는 달리 다양한 VO가 나옴. |
파라미터를 VO를 받아서 DTO 를 리턴해주는 메소드를 DTO에 만들수 있음 (반대의 경우도 가능) |