본문 바로가기
Coding/[Web] Backend

Entity, DTO, DAO, VO

by Gofo 2023. 4. 3.

Entity, DTO, DAO, VO

Servlet, Spring 등을 사용하면

로직 구현이나 데이터 교환을 위해 Entity, DTO, DAO, VO를 사용하게 된다.

 

각각을 한마디로 요약하면 아래와 같다.

  • Entity : 테이블
  • DTO : Data Transfer Object → 데이터 교환용
  • DAO : Data Access Object → 데이터 접근용
  • VO : Value Object → 데이터 교환용 (Read-only 속성의 DTO)

 

 


Entity

Database의 테이블에 해당하며,

주로 하나의 테이블에 하나의 entity를 정의한다.

 

테이블과 최대한 동일하게 클래스를 생성하고,

주로 테이블에 가지는 column들을 필드로 가진다.

 

주의할 점

다른 클래스를 상속받거나 구현체여서는 안되며,

데이터의 일관성을 위해 불필요한 setter는 지양해야 한다.

 

Entity를 다른 클래스, 메소드, 사용자와 직접 교환하는 것을 지양한다.

이러한 교환을 위해서 DTO나 VO를 이용하는 것이 좋다.

 


DTO

Data Transfer Object

 

말 그대로, 데이터를 옮기는 객체이다.

계층 간 데이터 교환을 위해 사용된다.

 

로직을 처리하는 메소드를 가지지 않는 순수한 데이터 객체로

주로 getter와 setter만 가진다.

 


DAO

Data Access Object

 

데이터에 접근하기 위한 객체이다.

 

데이터에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용하고

데이터에 접근하는 모든 행위를 담당한다.

 


VO

Value Object

 

DTO와 유사하지만 setter를 가지지 않고 read-only의 특징을 가진다.

 

DTO는 setter를 가지고 있기 때문에 사용하는 중에 값을 변경할 수 있지만,

VO는 사용하는 중에 객체 내부의 값을 변경할 수 없다.

 

 

'Coding > [Web] Backend' 카테고리의 다른 글

[SpringBoot] @Builder의 장점  (3) 2024.01.14
Singleton Pattern  (1) 2023.04.04
MVC 패턴 (feat. Servlet/JSP)  (0) 2023.04.03
PRG 패턴 : Post → Redirect → Get  (0) 2023.04.03
Cookie, Session  (0) 2023.03.31

댓글