Spring | DAO DTO VO

Wonhee 📘·2022년 4월 19일
0

Spring

목록 보기
2/6
post-thumbnail

DTO를 알아보면서 DAO 와 VO를 알게 되었다.
이 3가지는 각각 무엇을 의미하는것이고 어떠한 차이가 있는지 궁금하여 찾아보았다.

📘 DAO(Data Access Object)

DAO(Data Access Object)는 데이터베이스의 data에 접근하기 위한 객체입니다. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다.

📘 DTO(Data Transfer Object)

DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다.
유저가 입력한 데이터를 DB에 넣는 과정을 보겠습니다.
유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송합니다.
해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스로 데이터를 집어넣습니다.

📘 VO(Value Object)

VO(Value Object) 값 오브젝트로써 값을 위해 쓰입니다. read-Only 특징(사용하는 도중에 변경 불가능하며 오직 읽기만 가능)을 가집니다.
DTO와 유사하지만 DTO는 setter를 가지고 있어 값이 변할 수 있습니다.

DAO와 Repository의 차이점

그렇다면 위 3가지를 봤을때 DAO와 Repository는 같은것이 아닌가? 싶은 궁금증이 생길 것이다.
결론은 다르다.
DAO는 데이터베이스의 Data에 직접 접근하여 사용하지만, Repository는 JPA를 통하여 단순 CRUD의 기능을 조작한다.
Data를 더욱 복잡하게 다뤄야한다면 DAO를 사용하게 된다는 말도 있으나, 각자의 장단점과 차이점이 분명하게 있기 때문에 무조건 그렇다 라고는 말하기 어려우며 단순 참고용으로만 짚고 넘어가고 이 둘의 차이점은 차후에 좀 더 공부하여 포스팅 하겠습니다.

profile
오늘 걷지 않으면 내일은 뛰어야한다 🚶‍♂️ 🏃‍♀️

0개의 댓글