VO(Value Object)
- 정보를 담고있는 객체
- read only 속성
- 관계형 데이터베이스(Oracle, MySQL 등)의 레코드(table의 column)에 대응(꼭 1:1이 아니어도 됨)
- 정보를 담고 있는 변수인 private형 필드와 해당 필드에 접근 할 수 있는 각각의 Getter, Setter 메소드의 조합으로 클래스를 형성
DTO(Data Transfer Object)
- 데이터가 포함된 객체(VO)를 한 시스템에서 다른 시스템으로 전달하는 작업을 처리하는 객체
- 통신 용도로 오가는 객체
VO와 DTO의 차이
- 어떤 일을 하느냐에 따라 VO와 DTO로 이해하면 될 것 같다.
DAO(Data Access Object)
- DB 접근을 목적하는 객체
- 사용자는 자신이 필요한 Interface를 DAO에게 던지고 DAO는 이 인터페이스를 구현한 객체를 사용자에게 편리하게 사용 할수 있도록 반환