개발 블로그

DAO/DTO 본문

프로그래밍/개발지식

DAO/DTO

갹둥 2022. 12. 10. 13:44

DAO (Data Access Object)

  • -데이터 저장소를 공통의 인터페이스를 통해 이용할 수 있도록 해주는 구성 요소
  • -비즈니스 계층에서 영속성(데이터) 계층에 접근 시 이용함
  • -Data Source에 대한 접근 및 이용 방법을 추상화하고 캡슐화 함
  • 정보 접근에 필요한 함수들을 하나의 인터페이스로 정의

*DAO 인터페이스 정의

-data source에 대해 수행할 작업 선정(CRUD)

ex)

 

 

  • -하나의 인터페이스에 대해 여러 구현 클래스들을 정의하여 사용

ex)

-> GroupDAORDBImpl : RDB에 맞게 구현한 클래스

->GroupDAOFileImpl : File System에 맞게 구현한 클래스

 

DAOFactory class

:DAO를 구현한 클래스가 많을 경우 각 클래스의 객체를 생성하여 반환하는 역할

DAO를 사용하는 쪽에서 특정 DAO 구현 객체와 밀접하게 결합되는 것을 막기 위한 용도

-> 서비스 클래스에서 특정 DAO 구현 클래스에 의존하지 않게 개발 가능

*Factory pattern: 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽의 역할과 책임을 분리하려는 목적,

결합도 ↓ 응집도↑

 

 

 


DTO(Data Transfer Object)

-데이터를 저장하기 위한 필드들과 이에 대한 getter/setter 메소드 정의

ex)

*

*DB table과 1:1 매칭x, 일반적으로 여러 테이블에 나눠져 저장되어 있음.

 

-Presentation Layer-Business(Service) Layer간의 데이터 전달이나 Business Layer-Persistence Layer 간의 데이터 전달에 사용

ex)

 

 

'프로그래밍 > 개발지식' 카테고리의 다른 글

[JavaScript] Event 인터페이스  (0) 2023.11.10
[JavaScript]JS Function 함수  (0) 2023.10.04
[JavaScript]타입과 스코프  (0) 2023.09.27
API의 개념과 종류  (2) 2023.09.26
웹 스토리지(Web Storage), 쿠키(Cookie)  (0) 2023.07.29