Android에서 Parcelable, Serializable 사용하기
오늘 포스팅은 아주 간단하게 Parcelable과 Serializable의 사용법에 대해서 알아보겠습니다.
관련 개념에 대해서는 좋은글이 있기때문에 링크로 대체할게요.
Gradle
먼저 @Parcelize 어노테이션을 사용하기 위해서는 app.gradle 파일에 plugin을 추가 해야합니다. 만약 plugin을 설치하지 않고, 직접 구현할경우 꽤나 많은 구문을 작성해야 하기때문에 plugin 을 이용하시는게 좋습니다.
MainActivity
아래 MainActivity 코드를 보면 Parcelable로 데이터를 담아 보내는 것과 Serializable로 데이터를 담아서 보내는것은 큰 차이없이 이용이 가능합니다.
RcvActivity
하지만 사용하는 부분에서는 Parcelable은 제너릭 타입으로 받아옴으로써 별도의 형변환을 하지 않더라도 즉시 이용이 가능한 모습을 볼 수 있습니다.
반면에 Serializable은 직렬화된 데이터들을 다시 역직렬화 하는 과정을 거쳐 객체로써 변환되는것을 확인할 수 있습니다.
Data Class
데이터 클래스에서는 각각의 역할(Parcelable, Serializable)에 맞는것을 상속하면되고, 자동코드작성을위한 어노테이션은 Parcelable에만 추가하면 됩니다.
플러그인을 설치하지 않았을 경우에는 아래 코드를 직접 작성해야 합니다.
data class 가 getter setter를 자동으로 만들어 주듯이, Parcelize Annotation은 Parcelable에 관한 내용을 자동으로 작성해주게 됩니다.
마무리
저는 Parcelable을 구현하기 번거로워 주로 Serializable을 이용하여 객체화를 시켜주는 방법을 선택했었습니다. 그런데 최근에 Parcelize Annotation이 있다는걸 지인에게 들었고 성능도 좋아 소개하는글을 작성하게 되었습니다.
전체 소스코드는 깃허브를 참고해주세요~
이상 안드로이드 개발자 이종현이었습니다.
재밌게 읽으셨다면 👏🏻눌러 주시는 것도 잊지말아주세요~ 저에게 큰 힘이됩니다. :)
읽어주셔서 감사합니다.