Java - VO, DTO, DAO란?
안녕하세요! 오늘은 Java에서 DB에서 데이터를 보내는 CRUD를 처리하기 위한 구조를 설명드리고자 합니다.
위에 CRUD란
C : Create
R : Read
U : Update
D : Delete
의 약자로 생성, 읽기, 수정, 삭제로 구성된 DB 데이터 처리를 크게 4가지로 정리한 부분입니다.
요즘은 DTO, DAO는 잘 사용하지 않고 JPA와 같은 새로운 기술이 사용되지만
작성자는 DTO, DAO를 통해 공부했기 때문에 해당 부분으로 설명드리겠습니다.
먼저 VO는 Value Object의 약자로 변하지 않고 오직 읽기(Read)를
위한 데이터(정확한 데이터) 객체를 저장하는 부분입니다.
VO는 정확한 데이터를 처리하기 때문에 보안에 신경 써야 하며 잘 못된 데이터를 처리하는 경우가 있기 때문에
DTO에서 VO에 가기 전에 검문을 합니다.
그래서 VO의 데이터는 수정할 수 없고 오직 읽기(Read)를 통해 불러오기만 할 수 있습니다.
그래서 CRUD를 모두 처리하기 위해서 DTO를 사용하는데
그럼 여기서 DTO는 Data Transfer Object의 약자로 계층 간(Controller, View) 데이터 교환을 위해서
필요한 객체로 VO와 구조가 같지만 VO와 다르게 수정할 수 있습니다.
그래서 DTO를 통해 CRUD를 모두 사용할 수 있고 DTO를 통해서 정확한 데이터를 판별하고
VO에서 사용할 수 있는지도 DTO를 통해서 확인할 수 있습니다.
마지막으로 DAO를 설명드리고 이후에 예시를 통해 어떤 식으로 사용되는지 설명하겠습니다.
DAO는 Data Access Object의 약자로 DB의 데이터에 접근하기 위해서 사용되는 객체로
VO, DTO에서 받은 데이터를 쿼리를 통해서 DB와 직접적으로 연결해서 데이터를 처리하는 부분입니다.
이제 예시로 어떤 식으로 진행되는지 설명드리겠습니다.
현재 사용자가 회원가입, 로그인, 회원정보 수정, 회원탈퇴를
진행한다는 가정으로 설명드리겠습니다.
우선 회원가입(Create)으로 사용자가 입력한 데이터를 Controller에 전달합니다.
이 부분에서 DTO에 데이터를 저장하고 회원가입을 위한 Create를 진행하겠다는 것을
Service에 전달합니다. Service에 전달해서 DAO에 데이터를 전달하고
DAO에서 DB로 받은 데이터를 쿼리로 전송해서 Create를 하겠다는 것을 전달합니다.
만약 올바른 데이터 처리가 되었다면 리턴 값을 Service에 전달하고
Service에서 Controller에서 전달하고 Controller에서 View 부분으로
전달해서 회원가입이 되었다는 것을 확인시켜 줍니다.
로그인, 회원정보 수정, 회원탈퇴도 동일하게 진행되고
다른 부분은 중간에서 어떤 작업이 진행되는지 구분만 되고 구성은 같습니다.
이런 식으로 VO, DTO, DAO를 사용할 수 있고 회원가입, 로그인, 회원정보 수정, 회원 탈퇴
이외에도 다양한 부분에서도 사용할 수 있습니다.
오늘은 DB에서 데이터를 처리하기 위한 구조인 VO, DTO, DAO를
데이터 처리 흐름과 함께 어떻게 사용되는지 설명드렸습니다.
약간 이해가 안 될 수 있는데 흐름을 통해서 어떤 식으로 사용되는지
해당 부분이 어떻게 사용되는지 알아두시면 좋고 요즘에는 DTO, DAO 부분을
JPA라는 기술을 통해서 많이 사용되기 때문에 다음에는 JPA를 통해 어떤 식으로
진행되는지도 설명드리겠습니다. 감사합니다!!

'백엔드 > JAVA' 카테고리의 다른 글
Java - Thread란? (0) | 2023.09.04 |
---|---|
MVC 패턴이란?! (0) | 2023.09.03 |
Java - Class, Method란 (1) | 2023.06.14 |
JAVA란? (1) | 2023.06.14 |
댓글