tmxklab

[web] DAO, DTO, VO 개념 정리 본문

Web/Concept

[web] DAO, DTO, VO 개념 정리

tmxk4221 2020. 10. 28. 18:25

1) DAO(Data Access Object)

DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다.

MVC 패턴의 Model에서 이와 같은 일을 수행한다.

 

2) DTO(Data Transfer Object)

DTO는 계층간(Controller, View, Business Layer) 데이터 교환을 위한 자바 빈즈(Java Beans)를 의미한다.

DTO는 로직을 가지지 않는 데이터 객체이고 getter/setter메소드만 가진 클래스를 의미한다.

 

+) Java Beans

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

3) VO(Value Object)

DTO와 달리 VO는 Read-Only속성을 값 오브젝트이다. 자바에서 단순히 값 타입을 표현하기 위해 불변 클래스(Read-Only)를 만들어 사용한다. 예를 들면 빨강은 Color.RED, 초록은 Color.GREEN 이렇게 단순히 값만 표현하기 위해 getter기능만 존재한다.

 

+) DTO vs VO

DTO는 가변의 성격을 가진 클래스이며 데이터 전송을 위해 존재한다.(getter/setter) 그에 반해 VO는 값 그 자체의 의미를 가진 불변 클래스(Read-Only)를 의미한다.(getter만 존재) DTO는 인스턴스 개념이라면 VO는 리터럴 개념.

'Web > Concept' 카테고리의 다른 글

[web] MVC 패턴  (0) 2020.10.28
[web] Framework  (0) 2020.10.28
Web Server, WAS, Application 개념 정리  (0) 2020.10.28
Comments