DAO vs DTO vs VO

허준기·2023년 5월 6일
0

자바

목록 보기
6/9

DAO (Data Access Object

 데이터에 접근하기 위한 객체이다 
데이터베이스 접근을 위한 로직과 비지니스 로직을 분리하기 위해서 사용
데이터베이스와 연결할 Connection까지 설정되어 있는 경우가 많음

DTO (Data Transfer Object)

 계층간(Controller, View, Business Layer, Persistent) 데이터를 교환하기 위한 자바 빈즈(??)
로직을 가지지 않는 순수한 데이터 객체 → getter, setter 메소드만을 가짐
 

VO(Value Object)

 값 타입을 표현하기 위해 불변 클래스(Read-Only)를 만들어 사용
불변이기 때문에 getter만 존재!!
equals()와 hashcode()를 오버라이딩 해야함
VO 내부에 선언된 속성(필드)의 모든 값들이 VO 객체마다 값이 같아야 똑같은 객체라고 판별

DTO는 가변이고 VO는 불변이다!!!
DTO는 인스턴스 개념이고 VO는 리터럴 개념 → VO는 특정한 비즈니스 값을 담는 객체이고, DTO는 Layer간의 통신 용도로 오고가는 객체

Entity

 실제 데이터베이스의 테이블과 1:1로 매핑되는 클래스
DB의 테이블내에 존재하는 컬럼만을 속성(필드)으로 가져야함
상속 X, 구현체 X, 테이블내에 존재하지 않는 컬럼 소유 X

아직 개념이 익숙하지 않아서 이론만으로는 잘 이해를 못하겠다. 데이터베이스와 관련이 있는것 같은데 그쪽 개념이 아직 잡혀있지 않아서 이해가 잘 안된다.... 뭐부터 공부해야하지..

profile
나는 허준기

0개의 댓글