!!!!
Published 2023. 9. 8. 17:56
JAVA) DAO, DTO, VO, ENTITY ? 언어/java

Entity:

  • Entity는 데이터베이스의 테이블과 일치하는 객체. 주로 JPA(Java Persistence API)와 함께 사용되며, 데이터베이스의 행(row)과 매핑.
  • 엔터티는 데이터베이스 테이블의 각 열(column)과 일치하는 필드를 가지며, 엔터티 클래스는 데이터베이스와의 상호 작용
  • 예시: ProductEntity - 상품 정보를 나타내는 엔터티 클래스. 데이터베이스의 "product" 테이블과 매핑

 

Dao (Data Access Object):

  • Dao는 데이터베이스와의 상호 작용을 추상화하는 객체. 주로 엔터티(Entity) 객체를 데이터베이스에 저장, 검색, 업데이트 및 삭제하는 데 사용
  • 데이터베이스에 접근하기 위해 사용한다 
  • Dao는 주로 데이터베이스 테이블에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행하며, 엔터티 객체와 함께 사용
  • 예시: ProductDao - 상품 엔터티 객체와 관련된 데이터베이스 작업을 수행하는 Dao 

 

Dto (Data Transfer Object):

  • Dto는 데이터를 전송하거나 수신할 때 사용되는 객체. 주로 데이터의 전송 형식을 정의하고, 엔터티 객체와 클라이언트 사이에서 데이터 교환을 위해 사용. 데이터를 전달하기 위해 !! 사용한다.
  • Dto는 엔터티 객체에서 필요한 정보를 추출하거나 여러 엔터티를 결합하여 클라이언트에게 제공하는 역할을 합니다.
  • 예시: OrderDto - 주문 생성 요청 또는 응답을 위한 데이터 전송 객체.
  • 주로 View와 Controller 사이에서 사용한다
  • Getter / Setter 메소드를 포함하며, 이외에 다른 로직은 포함하지 않는다 

Vo (Value Object):

  • Vo는 비즈니스 로직에서 사용되는 값 객체로, 불변하며 변경 가능성이 없는 객체. Vo는 엔터티에서 추출된 데이터의 불변 복사본을 나타내는 데 사용됩니다.
  • Vo는 주로 엔터티에서 추출한 데이터를 클라이언트나 서비스 계층으로 전달할 때 사용되며, 값의 무결성을 보장하기 위해 불변성을 가짐
  • 예시: ProductVo - 상품 정보를 나타내는 값 객체. 불변성을 가지며 엔터티에서 생성된 데이터의 복사본
  • 사용하는 도중에 값 변경 불가능하다. 즉 Getter메소드만 가지고  Setter는 가지지 않는다. Read-Only를 생각하자.
  • 로직이 포함된 메소드를 가질 수 있다.
  • 속성값을 통해서 동일한 객체인지 비교할 수 있다. 

 

 

 

 

 

 

 

profile

!!!!

@DY57

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그