728x90
[GitHub 레포지토리]
이번 프로젝트에서 Parcelize라는 것을 사용해 봤다
Parcelize란?
안드로이드의 IPC(Inter-Process Communication)를 위해 만들어진 인터페이스이다. IPC는 같은 시스템에서 실행되는 서로 다른 프로세스 간 데이터를 전송하는 메커니즘이다. 이 인터페이스를 사용하면 객체를 이동시키기 위한 방법인 *마샬링(또는 *직렬화)을 정의할 수 있게 된다.
그러나 마샬링 정의 과정이 복잡, 코드 길어짐 등의 문제가 있다. (= 가독성이 떨어지고 에러 발생 확률이 높다)
@Parcelize는 코틀린에서 제공하는 *어노테이션으로 Parcelable 인터페이스 구현을 간소화한다.
컴파일러는 이 어노테이션이 붙은 클래스에 대해 자동으로 Parcelable 구현을 만들어준다
(= 가독성이 올라가고 개발자가 편해진다)
*마샬링(Marshalling)
- 메모리 상에 형상화된 객체 데이터를 적당한 다른 데이터 형태로 변환하는 과정
- 컴퓨터 간 데이터 전달 또는 프로그램 간 데이터 전달을 할 때 사용됨
*직렬화(Serialization)
- 객체 데이터를 일련의 byte stream으로 변환하는 작업
*어노테이션(Annotation)
- 메타데이터(부가기능)를 코드에 비침투적으로 추가할 수 있는 수단
Parcelize 사용 방법
1. 플러그인 추가
plugins {
id("kotlin-parcelize")
}
- Gradle에 플러그인을 추가해 준다
2. @Parcelize, Parcelable
@Parcelize
data class MyItem(
val itemImage: Int,
val itemName: String,
val itemExplain: String,
val itemSeller: String,
val itemAddress: String,
val itemPrice: Int,
val chat: Int,
var like: Int,
var isLike : Boolean
) : Parcelable
- @Parcelize 어노테이션과 Parcelable 인터페이스를 붙여준다
728x90
'코틀린(Kotlin) > TIL' 카테고리의 다른 글
[코틀린(Kotlin)] RecyclerView에 Divider 구분선 넣기, DividerItemDecoration (0) | 2024.01.18 |
---|---|
[코틀린(Kotlin)] getParcelableExtra() 실선, 버전 별 다르게 적용 (0) | 2024.01.15 |
[코틀린(Kotlin)] Cannot format given Object as a Number (0) | 2024.01.11 |
[코틀린(Kotlin)] 코틀린에서 버튼(Button) 색깔 바꾸기 (0) | 2024.01.10 |
[코틀린(Kotlin)] 뒤로가기(back) 버튼 클릭 시 다이얼로그 띄우기 onBackPressedCallback (0) | 2024.01.08 |