Java - DAO, DTO, VO, Entity

김민1·2023년 4월 10일
2

DAO,DTO,VO,Entity?

DAO

Data Access Object의 약어
DB에 접근하여 데이터를 조작할 수 있는 기능을 수행(삽입, 삭제, 조회 등).

DTO

Data Transfer Object의 약어
DTO는 계층간 데이터 교환을 위한 자바 빈즈를 의미함.
또한 DTO는 로직을 가지지 않는 데이터 객체이며 getter/setter메소드만 가진 클래스를 의미함

DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체를 말함

VO

Value Object의 약어
VO는 값 오브젝트로서 값을 위해 쓰임.
read-Only 특징을 가짐

Entity

Entity 클래스는 실제 DB 테이블과 1:1로 매핑되는 클래스
DB 테이블내에 존재하는 컬럼만을 속성(필드)로 가져야 함
또한 DB Persistent의 목적으로 사용되는 객체이기 때문에 Request나 Response값을 전달하는 클래스로 사용되어선 안됨


Entity와 DTO를 분리하는 이유

DB Layer와 View Layer 사이의 역할을 분리하기 위함.

Entity 클래스는 실제 테이블과 매핑되어 만일 변경하게 되면 여러 다른 클래스에 영향을 끼치고
DTO 클래스는 View와 통신하며 자주 변경되므로 분리를 해야 함

DTO는 Domain Model 객체(Entity)를 그대로 두고 복사하여 다양한 Presentation Logic을 추가한 정도로 사용하고 Domain Model 객체(Entity)는 Persistent만을 위해서 사용해야함

DB Layer = Persistence Tier
View Later = Presentation Tier

Java Beans?

Java로 작성된 소프트웨어 컴포넌트를 지칭하는 단어
비즈니스 로직 부분을 담당하는 Java 프로그램 단위
장점 1. JSP페이지가 복잡한 자바 코드로 구성되는 것을 피할 수 있음
장점 2. 재사용 가능한 컴포넌트를 만들 수 있음


마치며

VO 부분은 자세하게 공부를 하지 않았던 부분이라 내용이 좀 빈약할 수 있습니다.
수정할 사항이나 추가해야 할 사항이 있다면 댓글이나 이메일로 연락남겨주세요.

profile
https://kimmin1kk.github.io/ 로 블로그 옮겼습니다

2개의 댓글

comment-user-thumbnail
2023년 4월 11일

자세하게 공부 후 알찬 내용으로 다시 만날 수 있길 바랍니다.

1개의 답글