DAO란 Data Access Object의 약어로서 실질적으로 DB에 접근하는 객체를 말한다.
DAO의 사용 이유는 효율적인 커넥션 관리와 보안성 때문이다.
DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다.
정의
DAO란? 한마디로 Database의 data에 access하는 트랜잭션 객체이다. 일종의 객체라는 것을 잊지말도록 하자. DAO는 저수준의 Logic과 고급 비지니스 Logic을 분리하고, domain logic으로부터 persistence mechanism을 숨기기 위해 사용한다. (적절히 디자인을 하면 모든 domain logic을 바꾸는 대신에 DAO를 바꾸기만 하면 된다.)
persistence 계층 : Database(영구 저장소)에 data를 CRUD하는 계층
// Create , Read , Update , Drop의 줄임말
----------------------
DTO(Data Transfer Object)는 VO(Value Object)로 바꿔 말할 수 있는데
계층간 데이터 교환을 위한 자바빈즈를 말한다. 여기서 말하는 계층간의
컨트롤러, 뷰, 비즈니스 계층, 퍼시스턴스 계층을 말하며 각 계층간 데이터 교환을
위한 객체를 DTO 또는 VO라고 부른다.
[VO는 DTO와 동일한 개념이지만 read only 속성을 가짐 ]
- VO의 경우는 좀 더 읽기 전용에 가깝고 데이터베이스에 가깝다고 생각하는게 좋습니다.
- DTO의 경우는 좀 자유롭고, 계층간에 데이터를 전달하고 전달받는 용도라고 이해하는게 좋습니다.
'IT기술 > spring' 카테고리의 다른 글
[spring] MyBatis insert, update NULL (0) | 2021.09.30 |
---|---|
@Log4j에서 log에 에러 발생 시 해결방법, 그만좀 일어났으면 ㅠ (0) | 2021.09.30 |
[spring] Driver net.sf.log4jdbc.sql.jdbcapi.DriverSpy claims to not accept jdbcUrl, jdbc:log4jdbc:oracle:thin:@localhost:1521:XE 오류해결 (2) | 2021.09.18 |
myBatis 조건문 쓰기 (0) | 2021.09.03 |
[IssueCase] java.sql.SQLException: Access denied for user ‘ID’@’xxx.xxx’ (using password: YES (0) | 2021.08.31 |