[JAVA] DAO vs DTO vs VO

김훈·2022년 1월 16일
0

[JAVA]

목록 보기
2/5

1. DAO (Data Access Object)

  • 실질적인 DB를 접근하는 객체
  • 데이터 접근을 목적으로 하는 객체
  • Service 에서 DB에 접근이 필요한 경우에 활용
  • DB에 접근하기 위한 Connection 까지 가지고 있는 경우가 있음
  • Mybatis는 Connection 까지 제공 되기 때문에 없음

( Service 에서 dao를 호출 하면 mapper 의 namespace 에 따라 dao를 통해 접근 )


2. DTO (Data Transfer Object)

  • DTO 계층간 데이터 교환을 위한 자바빈즈를 의미

  • DTO는 로직을 가지지 않는 순수한 데이터 객체

  • 대표적인 Getter, Setter 를 통해 값을 담아 DB 접근 할때 활용


3. VO (Value Object)

  • DTO와 혼용해서 쓰이긴 하지만 미묘한 차이가 있음
  • ReadOnly 값이 불변함
  • equals() 나 hashcode() 를 오버라이딩 해야함


DTO 와 VO 가장 큰차이는?

  • 예시를 보면 알겠지만 DTO는 변수 선언만 되어있고 VO는 아규먼트 까지 선언 됨
    비어있는 DTO는 아규먼트를 계속 바꿔서 DB에 접근 할 수 있지만
    들어가있는 VO는 지정 된 값으로만 DB에 접근 가능
profile
작고 소중한 개발 노트

0개의 댓글