DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 CRUD 등을 조작할 수 있는 기능을 수행한다.
즉, Service와 DB를 연결하는 역할을 한다. SQL을 사용하여 CRUD API를 동작할 수 있다.
DTO는 계층간 데이터 교환을 위한 객체이다. 즉, Service 와 Controller 등 에서 사용하는 데이터 교환 객체이다.
로직을 갖고있지 않는 순수한 객체이며 오로지 Getter/Setter 메소드만 갖는다.
이외의 로직은 포함되지 않는다.
VO는 DTO와 동일한 개념이지면 Read Only 속성을 갖는다. (Getter Only)
단순히 값을 표현하기 위한 객체이다.
생성자를 통해서만 변수 set하며 getter 이외의 로직이 포함될 수 있다.
VO는 equals와 hashcode 를 override해서 리턴해주는 클래스가 있어야 한다. (값으로 비교하기 때문
DAO/DTO 상세설명 : https://norwayy.tistory.com/73