상세 컨텐츠

본문 제목

DAO DTO 궁급해? 중급버전

Jsp

by 헬로제이콥 2024. 9. 9. 18:36

본문

 

 

DAO (Data Access Object)

정의: 데이터베이스와의 상호작용을 담당하는 객체입니다.
역할:
SQL 쿼리 실행: 데이터베이스에 SQL 쿼리를 전달하고 결과를 가져옵니다.
데이터베이스 업데이트: 데이터베이스에 데이터를 추가, 수정, 삭제합니다.
트랜잭션 관리: 여러 개의 SQL 쿼리를 하나의 트랜잭션으로 묶어서 처리합니다.
특징:
데이터베이스에 대한 접근을 추상화합니다.
비즈니스 로직과 데이터베이스를 분리시켜 유지보수를 용이하게 합니다.

DAO가 데이터를 불러오는 것 외에도 다음과 같은 역할을 수행합니다.

데이터베이스 연결 관리: 데이터베이스 연결을 관리하고, 필요에 따라 연결을 생성하거나 해제합니다.
SQL 쿼리 생성: 동적인 SQL 쿼리를 생성하여 유연하게 데이터를 처리합니다.
예외 처리: 데이터베이스 오류 발생 시 적절한 예외를 발생시켜 오류 처리를 쉽게 합니다

 

DTO (Data Transfer Object)

정의: 계층 간 데이터를 전달하기 위한 순수한 데이터 객체입니다.
역할:
데이터 전송: 데이터베이스, 서비스 계층, 표현 계층 간 데이터를 효율적으로 전달합니다.
데이터 변환: 필요한 데이터만 추출하여 전달하거나, 계산된 값을 추가하여 활용합니다.
데이터 보호: 민감한 정보를 노출하지 않고 필요한 데이터만 전달합니다.
특징:
일반적으로 gettersetter 메소드만 가지고 있습니다.
상태를 유지하는 객체가 아닌, 단순히 데이터를 담는 용도로 사용됩니다.
비즈니스 로직을 포함하지 않습니다.
 
 

DTO가 중간 저장소라고 볼 수 있는 이유:

데이터베이스에서 가져온 데이터를 임시로 저장하여 다른 계층으로 전달합니다.
서비스 계층에서 처리된 결과를 표현 계층으로 전달하기 위한 중간 매개체 역할을 합니다.

하지만 DTO는 단순한 저장소를 넘어 다음과 같은 역할도 수행합니다.

데이터 변환: 데이터베이스의 테이블 구조와 UI에서 필요한 데이터 구조가 다를 수 있으므로, DTO를 통해 필요한 데이터만 추출하고 형식을 변환할 수 있습니다.
데이터 보안: 민감한 정보는 데이터베이스에서 직접 가져오지 않고, 필요한 부분만 DTO에 담아 전달하여 보안을 강화할 수 있습니다.

 

결론

DTODAO는 서로 협력하여 데이터를 효율적으로 관리합니다. DAO가 데이터베이스에서 데이터를 가져오면, DTO는 그 데이터를 받아서 다른 계층으로 전달하는 역할을 합니다. 이를 통해 데이터베이스와 비즈니스 로직을 분리하고, 시스템의 유연성과 확장성을 높일 수 있습니다.

핵심:

DTO: 데이터 전달을 위한 순수한 데이터 객체
DAO: 데이터베이스와의 상호작용을 담당하는 객체
둘 다 데이터를 다루지만, 목적과 역할이 다릅니다.

'Jsp' 카테고리의 다른 글

DTO DAO 궁금해?  (0) 2024.09.09
JSP와 AJAX의 결합  (0) 2024.08.31
API와 REST API: 비슷하지만 다른 점  (0) 2024.08.30
REST API란 무엇일까요?  (1) 2024.08.30
request.setAttribute 사용하는 이유  (0) 2024.08.24

관련글 더보기