DTO (Data Transfer Object), DAO (Data Access Object), VO (Value Object)는 3계층 아키텍처에서 사용됩니다.

 

 


 

 

1. 3-Tire Architecture

 웹 애플리케이션을 설계하고 개발할 때, 구조적 명료성과 유지보수를 위해 일반적으로 3계층 아키텍처(3-Tire Architecture)를 사용합니다. 3계층 아키텍처에서 두 가지 패턴은 데이터의 전송 및 캡슐화를 담당하게 됩니다.

 

 다음은 3계층 아키텍처의 구성요소입니다.

 

  • 프레젠테이션 계층(Presentation Layer)
    이 계층에서는 사용자의 입력을 받아 처리하고 사용자에게 결과를 표시합니다.

  • 비즈니스 계층(Business Logic Layer)
    애플리케이션의 다양한 비즈니스 로직이 구현되어 있는 계층입니다.

  • 영속성 계층(Persistence Layer)
    데이터베이스에 접근하여 데이터의 CRUD 연산을 처리하는 계층입니다.

 

위 3계층 아키텍처를 기반으로 DTO와 DAO를 알아보겠습니다.

 

 


2. DTO (Data Transfer Object)

 DTO는 일반적으로 Presentation, Business Layer에서 활용됩니다.

클라이언트의 요청을 DTO에 저장하고 DAO에게 DTO를 인자값으로 주면서 데이터 조작을 요청합니다.

이 때, DTO는 서블릿 공유 컨테이너의 Rquest Scope에 위치하므로 요청에 대한 응답을 전송하는 즉시 DTO는 파괴됩니다.

 

 

 

3. DAO (Data Access Object)

 DAO는 DTO를 기반으로 데이터베이스에 접근하여 데이터를 CRUD하고, 그 조작 결과를 VO(Value Object)로 반환합니다.

 

 

 

4. VO (Value Object)

VO는 Business Layer에서 DAO에게 요청한 값을 받아올 때 사용하며,  DAO는 데이터 조작을 통해 얻은 데이터를 반환할 때 VO를 통해 반환합니다.  즉, VO의 필드들은 DQL문장들의 결과셋으로 이루어진다고 할 수 있습니다.

 

 

 

 

'웹 표준 > Servlet' 카테고리의 다른 글

Session Tracking  (0) 2023.09.14
FrontController, Command Patterns  (0) 2023.09.13
Request  (0) 2023.09.13
Connection Pool  (0) 2023.09.08
톰캣 사양 별 DTD  (0) 2023.09.05

+ Recent posts