https://tecoble.techcourse.co.kr/post/2021-04-25-dto-layer-scope/
https://velog.io/@geesuee/JAVA-%EC%9E%90%EB%B0%94-MVC%EC%99%80-DTO
DAO (Data Access Object)
데이터베이스의 데이터에 접근하기 위해 생성하는 객체.
쉽게 말해, DAO를 통해 DB를 연결하여 데이터를 가져오거나, 삭제, 수정등 CRUD를 작업하는 것이라고 생각하면 된다.
DAO는 DataBase에 접근하기 위한 로직과 비지니스 로직을 분리하기 위해 사용한다.
그 이유는 다른 로직에서 DB를 통해 데이터를 얻어오려면 DB Driver와 Connection 객체를 생성하여 작업량이 많아지는데, DB와 연결하는 객체를 따로 만들어 관리함으로써 비효율적인 작업량을 줄일 수 있다.
DTO (Data Transfer Object), VO(Value Object)
계층 간 데이터 교환을 하기 위해 사용하는 객체.
로직을 가지지 않는 순수한 데이터 객체(getter & setter만 가진 클래스)이다.
즉, DAO가 DB에서 얻어온 데이터를 Service나 Controller로 보낼 때 getter와 setter를 통해 얻어 사용한다.
하지만 DB에서 꺼낸 값을 임의로 변경할 필요가 없기 때문에 DTO클래스에는 setter가 없다. (대신 생성자에서 값을 할당한다.)
DTO는 MVC중 Model쪽에 속하여 MVC 흐름 속에서 데이터가 교환될 수 있도록 하는 객체이다.
Controller는 View - Model의 데이터를 주고 받을 때 별도의 DTO를 주로 사용한다.
Entitiy의 개념을 포함하고 있다.
'Study > CS' 카테고리의 다른 글
[CS] Rest API: URL 디자인 가이드 (0) | 2022.02.11 |
---|---|
[Network] 라우팅(Routing) (0) | 2021.12.19 |
[CS] REST API, REST-ful이란? (0) | 2021.12.14 |
[CS] 계층화 아키텍쳐(Layered Architecture) (0) | 2021.12.07 |
[CS] MVC (Model, View, Controller) 디자인 패턴 (0) | 2021.12.03 |