728x90
반응형
이번 포스팅은 개발하면서 한 번쯤은 들어봤고 모르면 안 되는 용어(DTO, DAO, VO)를 간단하게 알아보자!
# DTO
- Data Transfer Object의 약자로 계층 간 데이터 교환을 하기 위해 사용하는 객체이다.
- getter & setter 만 가진 클래스이다 (코틀린은 Data Class).
- 쉽게 말해서 HTTP 통신시 JSON 타입의 Request Body와 Response Body를 생각하면 된다.
data class ServerResponse(
val name: String = "",
val age: Int = 0,
val phoneNumber: String = "",
)
# DAO
- Data Access Object의 약자로 데이터베이스의 data에 접근하기 위한 객체이다.
- 간단하게 DB에 접속하여 데이터의 CRUD 작업을 실행하는 객체라고 보면 된다.
- 안드로이드에서 DAO는 보통 Room Database를 적용할 때 사용한다.
아래는 Room Database DAO의 예제이다
@Dao
interface LocalDatabaseDao {
@Insert
fun insertAll(vararg users: User)
@Delete
fun delete(user: User)
@Query("SELECT * FROM user")
fun getAll(): List<User>
}
# VO
- Value Object의 약자로 값을 위해 사용한다.
- 값을 변경할 수 없다(read-Only)
- DTO와 차이점은 DTO는 값이 변할 수 있다는 차이가 있다.
data class ServerResponse(
val name: String = "",
val age: Int = 0,
val phoneNumber: String = "",
)
아까 DTO와 똑같지만 무조건 변하면 안 되기 때문에 val로 고정시켜준다.
참고 자료
https://developer.android.com/training/data-storage/room/accessing-data?hl=ko
https://melonicedlatte.com/2021/07/24/231500.html
반응형
'Kotlin 공부 노트' 카테고리의 다른 글
[Kotlin-Coroutine] coroutine Mutex(상호배제) 예제를 통한 사용법 (1) | 2024.06.09 |
---|---|
[Android-Kotlin] Groovy DSL -> Kotlin DSL Migration(코틀린 DSL로 의존성 관리 마이그레이션), Kotlin DSL이란? (2) | 2023.10.29 |
코틀린의 오브젝트란? (object, companion object) (0) | 2022.02.17 |
프래그먼트(Fragment) with Kotlin 알아보기! (0) | 2022.02.10 |
코틀린의 접근 제한자(Kotlin's Visibility Modifier) (0) | 2022.02.06 |