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 |