DAO ( Data Access Object)

DB의 Data 에 접근하기 위한 객체이며 DB접근을 하기위한 로직과 비즈니스 로직을 분리하기 위해 사용

DAO 는 보통 Connection 까지 설정되어있는 경우가많지만

현재쓰이는 Mybatis 등을 사용할거야 커넥션풀까지 제공되고 있기 떄문에 DAO를 별도로 만드는건 드물다

DTO(Data Transfer Object)

VO라고도 표현하며 계층 간 데이터 교환을 위한 자바 빈즈(Java Beans)이다.

DB 레코드의 데이터를 매핑하기 위한 데이터객체를 말한다.

DTO 는 로직을 가지고있지않고 data와 data접근을 위한 getter 와 setter 만 가지고있다.

VO(Value Obcject)

VO는 DTO 와 혼용해서 쓰이긴하지만 미묘한 차이가있다.

VO는 값 오브젝트로써 값을 위해쓰인다.

DAO 는 가변적 VO는 불변의 성격을 가지고있다.