DAO

Data Access Object의 약자로 데이터베이스의 data에 접근하기 위한 객체를 의미한다.

데이터베이스에 접근하기 위한 로직(Repository)와 데이터를 처리하기 위한 비즈니스 로직(Service, Controller)를 분리하기 위해 사용한다.

DTO

Data Transfer Object의 약자로 계층 간의 데이터 교환을 위해 사용하는 객체를 의미한다.

DTO는 로직을 가지지 않은 순수한 객체(getter & setter 만 갖는 클래스)이다.

VO

Value Object의 약자로 값만 가지는 객체로써 값을 유지하기 위해 사용된다.

Read Only 특징(사용하는 도중에 변경이 불가능하며 오직 읽기만 가능)

DTO와 유사하지만 DTO는 setter를 가지고 있어 값을 변경할 수 있다.

DAO, DTO 사용 예시

  1. 사용자가 브라우저에서 데이터를 입력한다.
  2. 프론트(클라이언트)에서 해당 데이터를 DTO에 넣어서 전송한다.
  3. 해당 DTO를 받은 백엔드(서버)에서 일정 처리를 거친 후, DAO에 옮겨 담아 데이터베이스에 저장한다.