[TIL_230830] serializable 과 parcelable 차이점

장재용·2023년 8월 30일

TIL

목록 보기
25/32

면접관 단골질문이기도 하고 한번 정리할 필요가 있을것 같아 작성하게되었다..

Serializable

  • 자바의 표준 Interface
  • 매우 간단히 구현 가능하다.
  • 퍼포먼스가 구림 -> 내부적으로 자바 리플렉션이 발생하게되고 이로인해 많은 오브젝트 생성과 Garbage Collection이 발생하게 되어
    스마트폰 배터리를 잡아먹게 되고 앱 성능도 떨어지게된다.

Parcelable

  • Android SDK Interface
  • Serializable보다 코드가 복잡
  • 자바 리플렉션을 사용하지 않기위해 설계되었기에 성능이 월등히 좋음

Parcelize

  • 코틀린에서 Parcelable을 쉽게 사용해주기 위해 생겨난 것이 Parcelize
  • Serializable의 간결성과 Parcelable의 우수한 성능이 특징
  1. pulgins에 id 'kotlin-parcelize' 등록해주고
plugins {
    id 'kotlin-parcelize'
}
  1. 데이터클래스에 @Parcelize, : Parcelable 인터페이스 작성만해주면 끝이다.
@Parcelize
data class Apple(
    val type: String, val color: String, val amount: Int
) : Parcelable

참고

https://www.charlezz.com/?p=823
https://jdroid.tistory.com/23
https://velog.io/@hygge/Android-Kotlin-RecyclerView-item-%ED%81%B4%EB%A6%AD-%EC%8B%9C-%ED%99%94%EB%A9%B4-%EC%A0%84%ED%99%98

profile
enjoy_error_message!

0개의 댓글