본문 바로가기
Android/Architecture

[Android] DTO vs DAO vs Entity

by 태크민 2024. 12. 14.

안드로이드에서 클린 아키텍처를 공부해보신 분들이면, 아래 용어들에 대해서 자주 접하게 됩니다.

DTO, DAO, Entity

각각에 대해서 차이는 무엇이며, 어떤 개념을 가지고 있는지 알아보겠습니다.

 

DTO (Data Transfer Object)

DTO는 단어 그대로 데이터 전송 객체를 의미합니다. 

쉽게 말해서  HTTP 통신시 JSON 타입의 Request Body와 Response Body를 생각하면 된다.

  • 계층 간의 데이터 교환을 하기 위해 사용하는 객체
  • API 호출 시 서버로부터 받은 JSON 형태의 데이터를 매핑할 수 있는 data class
  • 화면에 노출시키지 않는 data가 포함된다면 domain 모듈의 model에 필요한 data만 mapping 하는 작업이 필요

 

DAO (Data Access Object)

DAO는 데이터베이스에 접근하는 객체를 의미합니다. 즉, Database에 CRUD 작업을 수행하는 인터페이스 역할을 합니다.

  • 데이터 베이스에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용
  • SQLite (Room)을 사용할 때 DAO 사용

 

Entity

실제 Database에 테이블과 매칭되는 클래스를 의미합니다.

  • DTO와 유사함 (API response data는 DTO, Database data는 Entity)
  • DTO와 마찬가지로, 화면에 노출시키지 않는 data가 포험된다면 domain 모듈의 model에 필요한 data만 mapping 하는 작업이 필요함

 


참고자료

https://jige.tistory.com/58

 

DTO, DAO, VO에 알아보자!

이번 포스팅은 개발하면서 한 번쯤은 들어봤고 모르면 안 되는 용어(DTO, DAO, VO)를 간단하게 알아보자! # DTO - Data Transfer Object의 약자로 계층 간 데이터 교환을 하기 위해 사용하는 객체이다. - gette

jige.tistory.com

https://ystech.tistory.com/entry/Android-DTO-DAO-Entity

 

[Android] DTO? DAO? Entity?

서론 프로그래밍에서 한 번쯤은 접해봤을 DTO, DAO, Entity에 대한 개념을 정리해보려 한다. 클린 아키텍처 적용 시 헷갈리면 안 되는 개념이기 때문에 중요하다고 생각하는 개념이다. DTO(Data Transfer

ystech.tistory.com