Mapper 는 multi module 을 사용하는 경우 각 module 에 존재하는 data class 간의 변환을 위해 사용이 됩니다.
mapper 는 다양한 코드의 형태로 존재할 수 있습니다. 가장 중요한 것은 data class 간의 데이터를 변환해 줄 수 있다는 것 입니다.
간단하게 예시 코드를 보도록 합시다!
// data module
data class DataUser(
val name: String,
val age: String
)
// domain module
data class DomainUser(
val name: String,
val age: String
)
Mapper 의 예시를 들기 위해서 간단하게 data class를 만들었습니다. 이제 Mapper를 사용해보겠습니다!
// Mapper
fun dataToDomainMapper(data: DataUser): DomainUser {
return DomainUser(
name = data.name
age = data.age
)
}
함수 이름을 보면 알 수 있듯이 dataToDomainMapper, 즉 데이터 모듈의 데이터를 도메인 모듈의 데이터로 바꾸어 줍니다.
이렇게 Mapper의 생성이 완료되면, data의 변환이 필요한 곳에 mapper 를 넣어서 사용해주시면 됩니다!!
저도 multi module을 사용할 때 mapper 부분이 이해가 되지 않아서 정말 고생했었는데, 이제야 조금씩 어떤 기능을 하는지 조금은 알 것 같아 이렇게 글을 작성해봅니다.
최대한 간단하게 설명을 해보려 했는데 잘 전달이 되었을지 모르겠네요..!

글 읽어주셔서 감사합니다.
'Android Studio' 카테고리의 다른 글
| [error] cannot create an instance of class ... viewmodel (0) | 2022.05.21 |
|---|---|
| [Android] LiveData 란? (0) | 2022.04.29 |
| [Android/kotlin] Recyclerview Click (0) | 2022.04.19 |
| [error] Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.5.0-runtime 에러 해결 (0) | 2022.04.08 |
| [Android / kotlin] bottom navigation (0) | 2022.04.06 |