DTO Data transfer Object
- 전송되는 데이터의 컨테이너 (Java Beans)
- DB의 데이터를 로직을 갖고 있지 않은 순수한 데이터 객체로 가져오는 것. getter, setter메소드만 가진다.
- 데이터를 저장하여 사용하도록 한다
- 같은 시스템에서 사용되는 것이 아닌 다른 시스템으로 전달하는 작업을 처리하는 객체다.
- Layer간 통신 용도로 오가는 객체를 말하기도 한다.
- controller layer에서 client에 response DTO형태로 전달된다.
VO Value Object
- 데이터 그 자체로 의미있는 것을 담고있는 객체로 표현된다.
- Read-Only 속성의 객체다. 값 변경이 없다.
- 간단한 Entity를 의미하는 작은 객체를 의미한다
- 관계데이터베이스 레코드에 대응되는 자바 클래스다
- DB레코드를 구성하는 field들을 속성으로 하고,
해당 변수에 접근할 수 잇는 Getter와 Setter 메소드 조합으로 클래스를 형성한다. - 거의 불변성을 가진다
- equals()메소드로 비교할 때 객체의 모든 값을 비교해야 한다.
- equals()와 hashcode()를 오버라이딩 한다.
- DB레코드를 구성하는 field들을 속성으로 하고,
데이터의 흐름
JSP`UI`
-> DTO
를 param으로 전달
-> Class`service`
-> DTO
를 param으로 전달
-> SQL`DBIO`
-> VO
를 param으로 전달
-> `DB`