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를 생각하자.
- 로직이 포함된 메소드를 가질 수 있다.
- 속성값을 통해서 동일한 객체인지 비교할 수 있다.
'언어 > java' 카테고리의 다른 글
JPA) pageable사용시 page1부터 시작하고 싶을 때 (0) | 2023.09.12 |
---|---|
java) (0) | 2023.09.11 |
람다식 ) 리스트에서 짝수만 필터링해보기 (0) | 2023.08.28 |
JPA) 정리 (0) | 2023.08.22 |
Spring boot/React ) 웹페이지 새로고침시 Whitelabel 에러 해결하기 (0) | 2023.08.21 |