코틀린(Kotlin)/TIL

[코틀린(Kotlin)] Parcelize와 사용법

초보왕보초 2024. 1. 12. 20:02
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